【问题标题】:Using "or" statements with strings in an if statement在 if 语句中使用带有字符串的“或”语句
【发布时间】:2014-03-02 19:46:15
【问题描述】:

所以我想制作一个代码来对单词进行分类以将其与短语匹配。 catString是用户输入的字符串。我希望它仅在此输入是火或烟时才执行其余代码。

这是我遇到问题的线路:

if(catString = "fire" || "smoke" );

【问题讨论】:

  • if (catString.equals("fire") || catString.equals("smoke")) doStuff();
  • 您可以在此处发布问题之前搜索网络(例如,this if 语句)。只是一个建议。 =)

标签: java string if-statement


【解决方案1】:

您需要重复catString =。但是,您不应该使用==(不是=,赋值运算符)来比较字符串。使用.equals()。所以看起来像:

if(catString.equals("fire") || catString.equals("smoke"));

【讨论】:

  • 在进行比较时也等于通常应该是== 而不是=。您不将其与字符串一起使用的原因是因为您 == 比较内存中的地址,而不是字符串的章程是否相等。
  • @ansible 是的,乍一看我没有看到(他们使用的是=。我将其编辑为答案,谢谢。
【解决方案2】:

if (catString.equals("fire") || catString.equals("smoke"))

请注意,单个 = 不是比较操作。它将分配catString,而不是您在此处尝试执行的操作。

【讨论】:

    【解决方案3】:

    使用

     if(catString.equals("fire") || catString.equals("smoke"))
    

    【讨论】:

      【解决方案4】:

      使用.equals:

      if(catString.equals("fire") || catString.equals("smoke"))
          // do something 
      

      顺便说一句,如果您要测试引用相等性,请使用 == 而不是 =(用于赋值)。

      【讨论】:

        【解决方案5】:

        您可以使用equalsIgnoreCase,以便用户可以输入任何他想要的大小写并仍然匹配catString

        例如

        if(catString.equalsIgnoreCase("fire") || catString.equalsIgnoreCase("smoke"))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-02-26
          • 2014-06-18
          • 1970-01-01
          • 2012-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-09
          相关资源
          最近更新 更多