8

在我的程序中,我试图将我的 char 数组与if 条件下asterixA[]的字符串进行比较,例如:word

if (word.equals(asterixA))

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

4

4 回答 4

17

您必须将字符数组转换为字符串或字符串转换为字符数组,然后进行比较。

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

或者

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

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

于 2013-01-10T18:30:08.640 回答
1

您似乎将“字符串是字符数组”这一行字面化了。Stringequals方法指出

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

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

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

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

于 2013-01-10T18:36:19.907 回答
0

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

于 2013-01-10T18:31:36.347 回答
0

您可以比较数组:

if (Arrays.equals(asterixA, word.toCharArray()) {}
于 2013-01-10T18:33:53.640 回答