如何从逗号Java分隔的String中获取元素

时间:2013-04-15 14:57:49

标签: java string parsing

我正在尝试获取String的值,该值以逗号分隔。

类似这样的事:String str = "item1, item2,0 item3, item4, 0 item5 ...." 这个奇怪的字符串是因为我有一个KML,我采用解析kml的多边形的坐标。例: <coordinates> 2.18954459419779,41.40492402705473,0 2.189651379989959,41.40491712193686,0 2.189993453581252,41.40464878075789, ....

我做的是分开它,是:

 List<String> items = Arrays.asList(str.split("\\s*,\\s*"));

但是我不知道如何让0消失o在0和下一个数字之间放一个逗号。

我该怎么做?


编辑:解决方案

测试答案,它解决我的问题的最佳方法是这个解决方案:

String[] str_solution = str.split("\\s*,0?\\s*");

4 个答案:

答案 0 :(得分:3)

只需将可选零值添加到拆分模式

即可
"\\s*,0?\\s*"

如果它在那里它将与其余部分分开,如果不是,它将被忽略。

答案 1 :(得分:1)

请使用以下代码

String a = "item1, item2,0 item3, item4, 0 item5";
String[] arr = a.split(",|,0|, 0|, 0 |")

这将匹配',0'',0'和',0'并相应地分开。

答案 2 :(得分:1)

public class Test {
    public static void main(String[] args) {
        String data= "2.18954459419779,41.40492402705473,0 2.189651379989959,41.40491712193686,0 2.189993453581252,41.40464878075789,43.9919";
        String[] dtx = data.split(",");
        for (int j = 0; j < dtx.length; j++) {
            if(dtx[j].indexOf(' ')>=0) dtx[j] = dtx[j].split(" ")[1];   
            System.out.println("data["+j+"]="+dtx[j]);
        }
    }

}

结果

data[0]=2.18954459419779
data[1]=41.40492402705473
data[2]=2.189651379989959
data[3]=41.40491712193686
data[4]=2.189993453581252
data[5]=41.40464878075789
data[6]=43.9919

答案 3 :(得分:0)

使用从String

拆分的方法

我测试的一个例子:

  String contenido = "item1,item2,item3";
    String[] palabras;

    palabras = contenido.split(",");

    for(int i = 0; i < palabras.length; i++){
        System.out.println(palabras[i]+ " ");
    }