繁体   English   中英

我如何比较 Java 中的字符串和字符数组?

[英]How can I compare a string and a char array in Java?

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

if (word.equals(asterixA))

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

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

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

要么

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

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

您似乎把“A String is an array of chars”这一行看得太直白了。 Stringequals方法指出

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

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

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

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

做如下: if (word.equals(new String(asterixA))) {... }

您可以比较数组:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM