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