문제

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top