我怎样才能比较java中的字符串和char数组?

时间:2013-01-10 18:29:03

标签: java

在我的程序中,我试图将我的char数组asterixA[]与if循环中的字符串(word)进行比较,如:

if (word.equals(asterixA))

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

4 个答案:

答案 0 :(得分:13)

你必须将字符数组转换为String或String转换为char数组,然后进行比较。

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

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

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

答案 1 :(得分:1)

你似乎正在使用"一个字符串是一个字符数组"线太字面了。 String' equals方法声明了

  

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

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

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

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

答案 2 :(得分:0)

执行以下操作:if(word.equals(new String((asterixA))

答案 3 :(得分:0)

您可以比较数组:

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