gpt4 book ai didi

java - 使用 if 和 else 语句

转载 作者:行者123 更新时间:2023-12-02 09:19:59 25 4
gpt4 key购买 nike

所以我有这个方法来显示任何包含匹配子字符串(不区分大小写)的名称,并将匹配名称打印到 JTextArea。它从已存储为数组的输入文件中搜索名称。但是,如果我想在用户输入文件中不存在的内容时显示“未找到结果”,那么它会为所有内容显示“未找到结果”,甚至是存在的名称。如果我采取

 else
displayArea.append("\n No results found");

声明我的方法再次正常工作并显示正确的信息。那么如何让它显示“未找到结果”而不导致我的 if 语句停止工作?

private void match(String targetSubstring)
{
displayArea.setText("");
displayArea.append("FIND RESULTS for: " + targetSubstring);
displayArea.append("\n");
displayArea.append("\n Name Best Decade");
displayArea.append("\n--------------- ---------------");
targetSubstring = targetSubstring.toUpperCase();
for (int i = 0; i < namesArray.length; i++) {
String theName = namesArray[i].getName();
if (theName.toUpperCase().contains(targetSubstring))
{
displayArea.append("\n" + namesArray[i].getName() + "\t" + namesArray[i].bestDecade());
}
else
displayArea.append("\n No results found");
}
}

最佳答案

这段代码有逻辑错误。

需要重写为:

// flag to see if any matches are found
boolean foundSomething = false;

for (int i = 0; i < namesArray.length; i++) {
String theName = namesArray[i].getName();
if (theName.toUpperCase().contains(targetSubstring))
{
displayArea.append("\n" + namesArray[i].getName() + "\t" + namesArray[i].bestDecade());
foundSomething = true;
}
}

// Now, if you didn't find anything, then add this
if (!foundSomething) {
displayArea.append("\n No results found");
}

原因:在 for 循环中使用 else 情况,只要名称数组中的单个索引未找到匹配项,就会附加“未找到结果”。

关于java - 使用 if 和 else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37339603/

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