gpt4 book ai didi

java - 如何使 NoSuchElementException 不显示并将其替换为我自己的错误消息

转载 作者:行者123 更新时间:2023-12-01 13:22:17 24 4
gpt4 key购买 nike

所以我应该做的是让这段代码通过文件names.txt(包含大约一千个婴儿名字及其从1900年至今的排名)搜索我输入的名字,并让程序打印出名称和排名。 如果文件中不存在该名称,则应该打印出诸如“名称未找到”之类的内容。 我的问题是,它要么在找到名字之前打印出“名字未找到”大约 2k 次,要么每年打印出“名字未找到”,直到我找到姓氏并且它意识到它不存在。然后它打印出 cpu 生成的错误。 我也不应该让错误只是计算机生成的错误。请帮忙。

import java.util.Scanner;
import java.io.*;

public class BabyNames {
public static void main(String[] args)
throws FileNotFoundException {
Scanner input = new Scanner(System.in);
Scanner reader = new Scanner(new File("names.txt"));
String findNameOriginal = " ";
String findName = " ";
int space = 0;
int rank = 0;
int year = 1900;
System.out.println("This program graphs the popularity of a name in 11 decades' worth of statistics recorded since the year 1900.");
System.out.print("Type a name: ");
String name = input.next();
System.out.println("\nPopularity ranking of name \"" + name + "\"");

while (!findName.equalsIgnoreCase(name)) {
findNameOriginal = reader.nextLine();
Scanner nameLine = new Scanner(findNameOriginal);
space = findNameOriginal.indexOf(" ");
findName = nameLine.next();
for (year = 1900; year <= 2000; year += 10) {
rank = nameLine.nextInt();
if (findName.equalsIgnoreCase(name)) {
System.out.println(year + ": " + rank);
} else {
System.out.println("Name not found");

}

}
}
}
}

(不确定此名称和数据链接是否有效) http://fcps.blackboard.com/@@/3773575E3802F997E96CECF10E46CA25/courses/1/030-1-348-31840002-1314-YR/content/_27024448_1/names.txt

最佳答案

您可以添加一个 boolean 值来跟踪是否找到该名称:

 boolean found=false;
while ((findNameOriginal = reader.nextLine()) != null)
{
Scanner nameLine = new Scanner(findNameOriginal);
space = findNameOriginal.indexOf(" ");
findName = nameLine.next();
for (year = 1900; year <= 2000; year += 10)
{
rank = nameLine.nextInt();
if (findName.equalsIgnoreCase(name))
{
System.out.println(year + ": " + rank);
found=true;
}


}

}
if(!found) System.out.println("Name not found");

关于java - 如何使 NoSuchElementException 不显示并将其替换为我自己的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21956957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com