我想将此字符串解析为列表并返回{1.193493,54.6333,2.093077,31.6235,6.175355,21.6479}。我如何摆脱方括号????我使用了for循环并替换但它不起作用。
String st = "[[[1.193493,54.6333],[2.093077,31.6235],[6.175355,21.6479]]]"
String[] parsed = st.split(",");
for (String next : parsed) {
next.replace("//[", "").replace("//]", "");
}
答案 0 :(得分:1)
replace()
适用于简单的字符串,而非正则表达式。因此,您只需使用:
next.replace("[", "").replace("]", "");
另请注意,您需要将其分配给某个字符串变量;将其分配给need
将无效(不会修改parsed
数组中的元素。)
您实际上应该先删除大括号,然后再删除split
,如下所示:
String[] parsed = st.replace("[", "").replace("]", "").split(",");
答案 1 :(得分:0)
您可以使用一行执行此操作:
List<String> list = Arrays.asList(t.replaceAll("\\[", "").replaceAll("\\]", "").split(","));
完整代码:
package com.stackoverflow;
import java.util.Arrays;
import java.util.List;
public class Demo
{
public static void main(String[] args)
{
String t = "[[[1.193493,54.6333],[2.093077,31.6235],[6.175355,21.6479]]]";
List<String> list = Arrays.asList(t.replaceAll("\\[", "").replaceAll("\\]", "").split(","));
for(String s : list)
{
System.out.println(s);
}
}
}
将字符串转换为字符串列表并打印出来。如果您需要将字符串转换为双精度数,请在循环中使用Double.parseDouble(s)
。
答案 2 :(得分:0)
您可以使用this regex一次完成所有操作:
(?:\D*(\d*\.\d*))+
答案 3 :(得分:0)