我正在尝试打印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)
你可以试试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)
| 归档时间: |
|
| 查看次数: |
20611 次 |
| 最近记录: |