【发布时间】:2015-04-19 11:45:50
【问题描述】:
我目前正在制作一个程序,要求我对照文本文件(字典)中的所有单词检查数组中的单词,如果是则返回值 true,否则返回 false。 这是我目前的代码
public static boolean isEnglishWord(String[] arrayOfWords) throws IOException {
for (String line : Files.readAllLines(Paths.get("words.txt"), StandardCharsets.UTF_8)) {
if(arrayOfWords[0] == line)
{
return true;
}
else
{
return false;
}
}
return false;
}
我知道这只会检查“行”中的第一个单词,我想知道如何移动到下一个单词以将其与数组中的单词进行比较
【问题讨论】:
-
1.不要在字符串上使用
==。 2.if (x) return true; else return false;是return x的一个非常冗长的同义词。 3.只有找到东西才返回true,所以删除else子句。 -
移除 if 和 else 条件并简单地返回 -> return (arrayOfWords[0].equalsIgnoreCase(line))
-
你的方法没有意义。 isEnglishWord 听起来像是一个检查一个单词是否是英文单词的函数,而不是检查整个字符串列表是否包含一个英文单词。要么更改方法名称,要么只接受单个字符串作为参数。
-
@barq 我只是在测试数组中的第一个单词,我现在正在检查整个单词数组,看看它们是否都是英文单词。
-
那么你应该只将这个词传递给你的函数,而不是整个数组。