It is a really simple question but I need an another eye to look at my code:
String strtr = "iNo:";
char[] queryNo = strtr.toCharArray();
System.out.println(queryNo + " =this is no");
and the output is:
[C@177b4d3 =this is no
What are these characters, do you have any idea?
That's how toString()
is implemented for arrays.
The [C
denotes that is a char array, 177b4d3
is its hashcode.
You may want to look at
System.out.println(Arrays.toString(queryNo) + " =this is no");
if you want to see your original String again, you need this:
System.out.println((new String(queryNo)) + " =this is no");
Arrays do not override toString(), it is inherited from Object.toString as
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
you are printing the object
queryno
, as queryno
is a character array of on dimension and java is an object oriented language which holds every thing in the form of classes it gives the class name [C
to your array where [
denotes total dimension and C
denotes character type of array, Rest is the hashcode of the object.
You are trying to print the array and that is the reason you get gibberish. Try using Arrays.toString(queryNo)
and you will see what you expected.
来源:https://stackoverflow.com/questions/13641462/string-to-char-array-showing-silly-characters