如何在Java中比较字符串和字符数组?

8
在我的程序中,我正在尝试将我的字符数组 asterixA[] 与字符串 word 进行比较,使用 if 条件语句,例如:
if (word.equals(asterixA))

但是出现了错误。是否有其他方法可以进行比较?


5
char[]转换为String,然后使用equals方法。 - Louis Wasserman
1
养成查阅 Javadocs 的习惯,这将有助于您处理此类事情。 - Swapnil
4个回答

17

您需要将字符数组转换为字符串,或者将字符串转换为字符数组,然后进行比较。

if (word.equals(new String(asterixA)))
或者
if(Arrays.equals(word.toCharArray(), asterixA))

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


谢谢,我还是很新手。 - Laura Canter

1

您似乎对“字符串是字符数组”的说法过于字面了。 Stringequals 方法说明如下:

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

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

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

这样,您就可以在将您的 String 转换为 char[] 或反之后比较两个对象。


0

你可以比较这些数组:

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

0
请按照以下步骤操作:if (word.equals(new String(asterixA))) { ... }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接