如何在返回值false之前使该程序读取整个文件?

时间:2015-07-30 16:41:15

标签: java

我有一个GUI要求一个单词,当找不到单词时,它返回找不到dictionary.txt中的每个单词。我假设某种数组将用于增加每个错误,但我不知道如何编写类似的东西。我可以看到为什么它会为每个不正确的字符串返回“Nothing matches”。有什么建议?

            File file = new File("dictionary.txt"); 
            Scanner inputFile = new Scanner (file);
            inputFile.useDelimiter("\n");

            String wordCheck = textField.getText();

            while(inputFile.hasNext()) {
                String dictWord = inputFile.next();
                if (wordCheck.equals(dictWord)) {
                    JOptionPane.showMessageDialog(null, "Pie for you!");
                    break;
                } else {
                    System.out.println("Nothing matches");
                }
            }

2 个答案:

答案 0 :(得分:1)

wordCheck.equals(dictWord)的结果存储在布尔变量中,并确定在读取整个文件后要显示的内容,然后删除break; satement。

boolea isValid = false;
while(inputFile.hasNext()) {
 ...
  if (wordCheck.equals(dictWord)) {
    isValid = true;
  }
}

if (isValid)) {
     JOptionPane.showMessageDialog(null, "Pie for you!");
} else {
     System.out.println("Nothing matches");
}

答案 1 :(得分:0)

您可以在while循环之前添加boolean found = false;,如果找到了某些内容(而不是显示该消息),则在循环内设置found = true;。然后根据found变量的状态显示循环后的消息。