从字符串

时间:2016-03-13 19:22:35

标签: java regex string parsing

我想将此字符串解析为列表并返回{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("//]", "");
    }

4 个答案:

答案 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)

您可以分两步实现目标。

1)删除除逗号(,)

以外的所有特殊字符

2)然后用逗号分隔(,)

Public Sub New()
End Sub

输出:

enter image description here