I want to convert a character array to a string object using the toString() method in java. Here is a snippet of the test code I used:
import java.util.Array
I don't know where you get the idea that "in principle" it should print "abcdef". Where is that documented?
Something like [C@6e1408 is certainly not random gibberish - it's the same way of constructing a string from an object as any other type that doesn't override toString() inherits - it's a representation of the type ([ indicating an array; C indicating the char primitive type) followed by the identity hash code in hex. See the documentation for Object.toString() for details. As it happens, arrays don't override toString.
If you want [a, b, c, d, e, f] you can use Arrays.toString(char[]). If you want abcdef you can use new String(char[]).
To get a human-readable toString(), you must use Arrays.toString(), like this:
System.out.println(Arrays.toString(Array));
Java's toString() for an array is to print [, followed by a character representing the type of the array's elements (in your case C for char), followed by @ then the "identity hash code" of the array (think of it like you would a "memory address").
This sad state of affairs is generally considered as a "mistake" with java.
See this answer for a list of other "mistakes".
this way I found worked:
public String convertToString(char[] array, int length)
{
String char_string;
String return_string="";
int i;
for(i=0;i<length;i++)
{
char_string=Character.toString(array[i]);
return_string=return_string.concat(char_string);
}
return return_string;
}