I am trying to print the String, below is the code:
Object[] objArr = data.get(key);
for (Object obj : objArr)
{
System.out.println(obj);
cell.setValue(obj);
}
but I get following output in the console:
[[Ljava.lang.String;@7defb4fb]
I have tried the following snippets:
System.out.println(Arrays.toString(objArr)); System.out.println(Arrays.asList((objArr))); System.out.println(objArr[k]);
But all of these are giving similar strange output:
[[Ljava.lang.String;@7defb4fb] [[Ljava.lang.String;@7defb4fb] [Ljava.lang.String;@7defb4fb
How do I get the string value out of it?
**
Edit:
** My problem was to print and array of an array in Java. First thing was to recognize that its nested arrays and hence when I try to iterate over the array and print its elements it was printing the address of the address instead of the element.
[Ljava.lang.String;@7defb4fb]
My problem was to recognize this as an array and iterate over this array again in order to print the elements. Hence here was the solution
if (obj instanceof String[]) {
String[] strArray = (String[]) obj;
System.out.println(Arrays.toString(strArray));
// System.out.println(obj);
}
Advertisement
Answer
You can try instanceof and then cast it to String[].
Sample code:
String[] strArr = {"anc", "asda"};
Object[] objArr = {strArr, strArr}; // Array of String Arrays
for (Object obj : objArr) {
if (obj instanceof String[]) {
String[] strArray = (String[]) obj;
System.out.println(Arrays.toString(strArray));
// System.out.println(obj);
}
}