【问题标题】:Strings in Java: .equals()Java 中的字符串:.equals()
【发布时间】:2017-03-03 02:48:00
【问题描述】:

我知道在Java中为了查看两个字符串的内容是否匹配,我们可以使用.equals()方法,但是我们可以用什么来查看它们是否不匹配呢?例如,我见过,假设我有一个名为 :password 的字符串设置为 Cooper

(!password.equals("Cooper"));

感叹号是否表示正在检查密码是否不等于Cooper

谢谢

【问题讨论】:

  • 在您的示例上下文中,! 表示“不”,它会翻转boolean 值的结果,因此如果equals 返回true! 将使其成为@ 987654333@,您还可以在正常比较中看到,如果a 不等于ba != b 将返回true(为了论证,假设有数字)
  • 这不是感叹号。那是 not 运算符
  • @KenWhite Unicode 联盟会不同意你的看法。 (fileformat.info/info/unicode/char/0021/index.htm)
  • @David:如果问题是关于 Unicode 或文本的,那将是相关的。它不是。它是关于 Java 编程语言的。在那种语言中,它是not operator。 (不过没关系。每个人都喜欢指出不相关的技术细节的学究。)

标签: java string


【解决方案1】:

是的,这是正确! 标记将翻转 boolean 的值。

【讨论】:

    【解决方案2】:

    您可以有两个选项来检查密码是否不等于Cooper

     if(!password.equals("Copper"))
        {
            //do something
        }
    

    if(!"Copper".equals(password))
    {
        //do something
    }
    

    【讨论】:

      【解决方案3】:

      (!password.equals("Cooper")) 是正确的。 !符号将切换布尔结果的值。

      我更喜欢(!"Cooper".equals(password)),而不是你的说法,因为左侧的常量值也将消除空指针异常的机会。

      如果密码的值为空,那么你的语句将抛出 NullPointerException。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-06
        • 2012-04-24
        • 2019-02-07
        相关资源
        最近更新 更多