我不明白为什么!
我基本上有一个STRING(是的,不是数组),它具有以下内容:
[something, something else, somoething, trallala, something]
我想把它变成一个String []。所以首先关闭第一个和最后一个字符的substring()以摆脱括号[]。然后我使用split()函数用逗号分割。我试过用“\ |”和“,”和“\”,结果相同。
这就是我得到的:
[Ljava.lang.String;@186d4c1
这是代码。我把它变成了一个单行:
String[] urlArr = ((matcher.group(3).toString()).substring(1, (matcher.group(3).length()-1))).split(",");
正如你所看到的那样,第一部分是(matcher.group(3).toString()),它会返回一个有效的字符串(就像上面发布的例子)。所以我不明白为什么它不起作用。
有什么想法吗?
编辑:
我澄清了一下代码:
String arrString = matcher.group(3).toString();
int length = arrString.length();
String[] urlArr = (arrString.substring(1, length-1)).split(",");
System.out.println(urlArr);
答案 0 :(得分:7)
输出
[Ljava.lang.String;@186d4c1
是java默认打印字符串数组(或任何数组)的方式(转换为字符串时)。你可以使用
Arrays.toString(urlArr)
获得更易读的版本。
答案 1 :(得分:5)
您正在获得一个有效的String
数组,但是尝试直接打印它并不能达到您的预期效果。试试,例如。
System.out.println(Arrays.asList(urlArr));
如果要逐个处理解析后的标记,可以简单地遍历数组,例如
for (String url : urlArr) {
// Do something with the URL, e.g. print it separately
System.out.println("Found URL " + url);
}
答案 2 :(得分:2)
在数组上执行toString
时,您只需获取内部表示。没那么有用。尝试Arrays.toString(what comes back from split)
以获得更具可读性的内容。