java - 在java中比较单词中的单词

标签 java arrays if-statement

基本上我已经:

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() 我比较每个数组。你可能知道我的数组 ActionAnimationComedy 存在于我的 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/

相关文章:

带有转义字符的 JavaCC 引用

java - Android打开失败: EACCES (Permission denied) when writing file in data/data/package/files

javascript - 这两个变量如何使用一条线进行交换?

python - 如何用Python将用户输入转换为列表?

java - 如何在读取文件时使用 if 语句?

vba - 为什么带有可选参数的工作表 IF() 函数的语法与 UDF 不同?

java - 什么是NullPointerException,我该如何解决?

java - 我如何保留我的距离表示得分字段并将其映射到我的结果实体中?

c - 如何在 C 中释放 malloc 的二维数组?

计数器和累加器不工作并导致程序崩溃。我究竟做错了什么?