【发布时间】:2021-01-26 00:41:33
【问题描述】:
Java 中的 toCharArray() 返回字符数组,Arrays.toString() 将数组转换为字符串,toString() 会一样,但为什么下面的代码不起作用。
public static void main(String[] args) {
ArrayList<String> ar = new ArrayList<>(Arrays.asList( "abc", "def", "ghi", "jkl"));
char[] t = "abc".toCharArray();
String t2 = Arrays.toString(t);
if( ar.contains(t2)){
System.out.println("contains"); // This line doesn't get executed
}
String t3 = t.toString();
if( ar.contains(t3)){
System.out.println("contains"); // This line doesn't get executed
}
if( ar.contains("abc")){
System.out.println("contains"); // This line execute and prints on console
}
}
【问题讨论】:
-
那么你看的是实际值还是
ar?我认为这会让事情变得显而易见。 -
代码可以正常工作,并且完全按照它应该的方式工作。
System.out.println(t2);会告诉你为什么它没有做你认为应该做的事情。 -
“和 toString() 做的一样”不完全一样。确实它也返回一个字符串,但是你检查过那个字符串的内容是什么吗?如果你想从 char[] 创建字符串,你可以使用
new String(charArray)。 -
另外,请尽量避免使用“不起作用”一词。更多信息:web.archive.org/web/20180124130721/http://importblogkit.com/…