Pergunta

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?

Foi útil?

Solução

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");

Outras dicas

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top