在我的程序中,我试图将我的char数组asterixA[]
与if循环中的字符串(word)进行比较,如:
if (word.equals(asterixA))
但它给了我一个错误。还有其他方法可以比较它们吗?
答案 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()) {}