基本上我已经:
public static void main(String[] args)
{
String genre = "Action, Animation, Comdey";
String[] genres = genre.split(", ");
for(int i=0;i<(genres.length)-1;i++){
System.out.println(genres[i]);
if(!genres[i].equals("Action") || !genres[i].equals("Adventure")
|| !genres[i].equals("Animation") || !genres[i].equals("Biography")
|| !genres[i].equals("Comedy") || !genres[i].equals("Crime")
|| !genres[i].equals("Documentary") || !genres[i].equals("Drama")
|| !genres[i].equals("Family") || !genres[i].equals("Fantasy")
|| !genres[i].equals("Film-Noir") || !genres[i].equals("Game-Show")
|| !genres[i].equals("History") || !genres[i].equals("Horror")
|| !genres[i].equals("Music") || !genres[i].equals("Musical")
|| !genres[i].equals("Mystery") || !genres[i].equals("News")
|| !genres[i].equals("Reality-TV") || !genres[i].equals("Sci-Fi")
|| !genres[i].equals("Sport") || !genres[i].equals("Talk-Show")
|| !genres[i].equals("Thriller") || !genres[i].equals("War")
|| !genres[i].equals("Western")
){
System.out.println("Selected genres could not be identified");
return;
}else {
System.out.println("Success");
}
}
}
正如你所看到的,我有一个字符串 genre
其中包含 Action, Animation, Comdey
,然后我用 ,(space)
分割每个单词,然后使用 if()
我比较每个数组。你可能知道我的数组 Action
、 Animation
和 Comedy
存在于我的 if()
单词列表中。所以它不应该执行 System.out.println("Selected genres could not be identified");
但它确实执行了,我不知道为什么但这真的吓坏了我。
您可以复制/粘贴我的代码到https://www.compilejava.net/并自行查看结果。
如果您告诉我我做错了什么,我将非常感激。
最佳答案
如果您尝试检查当前类型是否与 ||
匹配,则需要将所有 OR ( &&
) 更改为 AND ( none
)可用的类型,例如:
public static void main(String[] args) {
String genre = "Action, Animation, Comdey";
String[] genres = genre.split(", ");
for (int i = 0; i < (genres.length) - 1; i++) {
System.out.println(genres[i]);
if (!genres[i].equals("Action") && !genres[i].equals("Adventure") && !genres[i].equals("Animation")
&& !genres[i].equals("Biography") && !genres[i].equals("Comedy") && !genres[i].equals("Crime")
&& !genres[i].equals("Documentary") && !genres[i].equals("Drama") && !genres[i].equals("Family")
&& !genres[i].equals("Fantasy") && !genres[i].equals("Film-Noir") && !genres[i].equals("Game-Show")
&& !genres[i].equals("History") && !genres[i].equals("Horror") && !genres[i].equals("Music")
&& !genres[i].equals("Musical") && !genres[i].equals("Mystery") && !genres[i].equals("News")
&& !genres[i].equals("Reality-TV") && !genres[i].equals("Sci-Fi") && !genres[i].equals("Sport")
&& !genres[i].equals("Talk-Show") && !genres[i].equals("Thriller") && !genres[i].equals("War")
&& !genres[i].equals("Western")) {
System.out.println("Selected genres could not be identified");
return;
} else {
System.out.println("Success");
}
}
}
Here更符合逻辑OR
运算符(operator)。在您的场景中,!genres[i].equals("Action")
计算结果为false
然而,对于“操作”,其他条件如 !genres[i].equals("Adventure")
评估为true
因此,它打印“无法识别选定的流派”。
关于java - 在java中比较单词中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42256959/