调试COA-Programming2时,发现打印StringBuffer对象会出现诸如[C@16b98e56的结果。
代码大概如下
char[] CheckCode = new char[...];
...
StringBuffer temp = new StringBuffer(CheckCode.toString());
...
System.out.println(temp);
后来发现 toString() 方法返回的是
The toString method for class Object
returns a string consisting of the name of the class of which the object is an instance,
the at-sign character `@',
and the unsigned hexadecimal representation of the hash code of the object.
In other words, this method returns a string equal to the value of:
getClass().getName() + '@' + Integer.toHexString(hashCode())
要想将数组的内容转化为String,可以改为
StringBuffer temp = new StringBuffer(String.valueOf(CheckCode));
//['1','1','1']---->"111"
还有一种是
StringBuffer temp = new StringBuffer(Arrays.toString(CheckCode));
//['1','1','1']---->"[1,1,1]"