gpt4 book ai didi

java - 否则 !string[i][j].equals(name) 返回 j 次减去 IF

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

好的。完全披露,这是一项学校作业,我已经解决了所有问题,但没有找到声明,我一生都无法弄清楚。它要么打印它 999 次,然后在正确的位置打印名称的排名年份,我已经更改了位置并移动了它,尝试了一个 while 循环,添加了更多内容。事情一定很简单,我只是无法接受。

这个想法是搜索 10 个不同的文本文件,找到名称并打印它的排名(几乎是索引)。我已经完成了所有这些工作,并且我知道如何去做。我已经注释掉了我遇到问题的 if 语句。捕获后就到底部了。这是代码的最后一段。我也理解它为什么这样做,因为 else 正在经历循环并且它不等于 999 次,但我只希望它在名称根本不匹配任何名称时打印。

感谢您的所有帮助。

    public static void readNames() {
for (int i = 0; i < row; i++) {
String filename = "C:\\Users\\Rocketman\\Desktop\\JAVA\\babynameranking" + (2001 + i) + ".txt";
try (Scanner input = new Scanner(new File(filename))) {
for (int j = 0; j < column; j++) {
input.nextInt();//rank
boyNames[i][j] = input.next();//boy name
input.nextInt();//boy amount
girlNames[i][j] = input.next();//girl name
input.nextInt();//girl amount
if (((year == 2001 + i) && (i == 0 + i)) || (year == 2010 && i == 9)) {
if (gender.equalsIgnoreCase("m") || gender.equalsIgnoreCase("male")) {
if (boyNames[i][j].equalsIgnoreCase(name)) {
System.out.println(name + " rank is " + (j + 1) + ".");
}
} else if (girlNames[i][j].equalsIgnoreCase(name)) {
System.out.println(name + " rank is " + (j + 1) + ".");
}
}

}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
}
// if ((!boyNames.equals(name) || !girlNames.equals(name))) {
// System.out.println(name + " is not ranked in " + year);
// }
}
}

最佳答案

您在处理特定文件的 block 中需要一个 boolean 变量。将其初始化为 false(这家伙没有排名)。在处理文件时,如果您发现他/她在该文件中排名,请将其设置为 true。然后最后检查该变量是真还是假(用该检查替换您的注释部分)。

一般来说,这个检查 !boyNames.equals(name) 不起作用,因为 boyNames 是一个二维数组,它永远不能等于 Java 中的字符串。

看看这是否可以解决您的问题。

    public static void readNames() {
for (int i = 0; i < row; i++) {
String filename = "C:\\Users\\Rocketman\\Desktop\\JAVA\\babynameranking" + (2001 + i) + ".txt";
try (Scanner input = new Scanner(new File(filename))) {
boolean ranked = false;
for (int j = 0; j < column; j++) {
input.nextInt();//rank
boyNames[i][j] = input.next();//boy name
input.nextInt();//boy amount
girlNames[i][j] = input.next();//girl name
input.nextInt();//girl amount
if (((year == 2001 + i) && (i == 0 + i)) || (year == 2010 && i == 9)) {
if (gender.equalsIgnoreCase("m") || gender.equalsIgnoreCase("male")) {
if (boyNames[i][j].equalsIgnoreCase(name)) {
System.out.println(name + " rank is " + (j + 1) + ".");
ranked = true;
}
} else if (girlNames[i][j].equalsIgnoreCase(name)) {
System.out.println(name + " rank is " + (j + 1) + ".");
ranked = true;
}
}
}
if (!ranked){
System.out.println(name + " is not ranked in " + year);
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
}
}
}

关于java - 否则 !string[i][j].equals(name) 返回 j 次减去 IF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22275886/

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