【问题标题】:How can I compare a string and a char array in Java?如何在 Java 中比较字符串和 char 数组?
【发布时间】:2013-01-10 18:29:02
【问题描述】:

在我的程序中,我试图在 if 条件下将我的 char 数组 asterixA[] 与字符串 word 进行比较:

if (word.equals(asterixA))

但它给了我一个错误。有没有其他方法可以比较它们?

【问题讨论】:

  • char[]转换成String,然后使用equals
  • 养成阅读 Javadocs 的习惯。它会帮助你处理这些事情。

标签: java arrays string


【解决方案1】:

您必须将字符数组转换为字符串或字符串转换为字符数组,然后进行比较。

if (word.equals(new String(asterixA)))

if(Arrays.equals(word.toCharArray(), asterixA))

顺便说一句。 if 是条件语句而不是循环

【讨论】:

  • 谢谢,对这个还是很陌生
【解决方案2】:

您似乎将“A String is an array of chars”这一行字面化了。 Stringequals 方法指出

将此字符串与指定对象进行比较。当且仅当参数不为 null 并且是表示与此对象相同的字符序列的 String 对象时,结果才为真。

这完全取决于具体情况,但通常您比较相同类型的两个对象或属于同一层次结构的两个对象(共享一个公共超类)。

在这种情况下,String 不是 char[],但 Java 提供了从一个到另一个的机制,通过使用 String#toCharArray() 进行 String -> char[] 转换或通过传递char[] 作为String 的构造函数的参数。

通过这种方式,您可以在将 String 转换为 char[] 后比较这两个对象,反之亦然。

【讨论】:

    【解决方案3】:

    您可以比较数组:

    if (Arrays.equals(asterixA, word.toCharArray()) {}
    

    【讨论】:

      【解决方案4】:

      如下操作:if (word.equals(new String(asterixA))) { ... }

      【讨论】:

        猜你喜欢
        • 2015-05-16
        • 2021-12-06
        • 2012-02-14
        • 2021-06-06
        • 2012-08-14
        • 1970-01-01
        相关资源
        最近更新 更多