将字符数组转换为字符串

时间:2014-01-17 03:27:49

标签: java

为什么toString方法返回jibberish?

char[] arrays = {'a','b','c'};
  { a, b, c }
arrays.toString()
  "[C@6519ceb1"

2 个答案:

答案 0 :(得分:6)

您所看到的是数组对象的字符串表示形式为Object。 (所有对象的toString()的默认行为是打印对象引用的表示。您不能覆盖该数组的行为。)获取数组的内容的字符串表示形式,您需要将字符数组传递给String构造函数:

char[] arrays = {'a','b','c'};
String s = new String(arrays); // "abc"

或(取决于您要完成的任务)使用

String s = java.util.Arrays.toString(arrays); // "[a,b,c]"

答案 1 :(得分:1)

char[] arrays = {'a','b','c'};
System.out.println(Arrays.toString(arrays));

这是使用java.util.Arrays 可以找到实施

http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/Arrays.java#Arrays.toString%28java.lang.Object%5B%5D%29

默认情况下,它使用Object类的toString实现

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}