在我的程序中,我正在尝试将我的字符数组
asterixA[]
与字符串 word
进行比较,使用 if 条件语句,例如:if (word.equals(asterixA))
但是出现了错误。是否有其他方法可以进行比较?
您需要将字符数组转换为字符串,或者将字符串转换为字符数组,然后进行比较。
if (word.equals(new String(asterixA)))
或者if(Arrays.equals(word.toCharArray(), asterixA))
顺便说一下,if是一个条件语句而不是循环语句。
您似乎对“字符串是字符数组”的说法过于字面了。 String
的 equals
方法说明如下:
将此字符串与指定对象进行比较。当且仅当参数不为 null 且是表示与此对象相同字符序列的 String 对象时,结果为 true。
这完全取决于情况,但通常您会比较两个相同类型的对象或两个属于同一层次结构的对象(共享一个公共超类)。
在这种情况下,String
不是 char[]
,但 Java 提供了从一个转换到另一个的机制,可以通过使用 String#toCharArray()
进行 String -> char[]
转换,或者通过将 char[]
作为参数传递给 String
的构造函数进行 char[] -> String
转换。
这样,您就可以在将您的 String
转换为 char[]
或反之后比较两个对象。
你可以比较这些数组:
if (Arrays.equals(asterixA, word.toCharArray()) {}
if (word.equals(new String(asterixA))) { ... }
char[]
转换为String
,然后使用equals
方法。 - Louis Wasserman