如何将[[Ljava.lang.String; @ 7defb4fb]转换为字符串

iQu*_*mer 0 java arrays

我正在尝试打印String,下面是代码:

Object[] objArr = data.get(key);
for (Object obj : objArr)
{
    System.out.println(obj);
    cell.setValue(obj);
}
Run Code Online (Sandbox Code Playgroud)

但我在控制台中得到以下输出:

[[Ljava.lang.String;@7defb4fb]
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码片段:

System.out.println(Arrays.toString(objArr));
System.out.println(Arrays.asList((objArr)));
System.out.println(objArr[k]);
Run Code Online (Sandbox Code Playgroud)

但是所有这些都给出了类似的奇怪输出:

[[Ljava.lang.String;@7defb4fb]
[[Ljava.lang.String;@7defb4fb]
[Ljava.lang.String;@7defb4fb
Run Code Online (Sandbox Code Playgroud)

如何从中获取字符串值?

**

编辑:

**我的问题是用Java打印和数组化的数组。第一件事是认识到它的嵌套数组,因此当我尝试遍历该数组并打印其元素时,它是在打印地址而不是元素的地址。

[Ljava.lang.String; @ 7defb4fb]

我的问题是将其识别为数组,然后再次遍历此数组以打印元素。因此,这是解决方案

if (obj instanceof String[]) {
        String[] strArray = (String[]) obj;
        System.out.println(Arrays.toString(strArray));
        // System.out.println(obj);
    }
Run Code Online (Sandbox Code Playgroud)

Nam*_*ala 5

你可以试试instanceof,然后String[]

样例代码:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)