所以我有這種方法顯示任何包含匹配子字符串(不區分大小寫)的名稱,並將匹配的名稱打印到JTextArea。它從已存儲爲數組的輸入文件中搜索名稱。但是,如果我想在用戶鍵入文件中不存在的內容時顯示「未找到結果」,則會顯示「未找到結果」,即使是存在的名稱也是如此。如果我拿使用if和else語句
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");
}
}
不,他的循環中存在邏輯錯誤,爲數組中的每個元素都打印「未找到結果」,但不匹配子字符串。所以代碼並不完全正確 –