1

我正在尝试获取以逗号分隔的字符串的值。

像这样: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 消失或在 0 和下一个数字之间加一个逗号。

我该怎么做?


编辑:解决方案

测试答案,它对我的​​问题完美的是这个解决方案:

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

4 回答 4

3

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

"\\s*,0?\\s*"

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

于 2013-04-15T15:00:37.677 回答
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
于 2013-04-15T15:24:30.133 回答
1

请使用以下代码

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

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

于 2013-04-15T15:08:29.053 回答
0

使用从字符串中拆分出来的方法

我测试过的一个例子:

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

    palabras = contenido.split(",");

    for(int i = 0; i < palabras.length; i++){
        System.out.println(palabras[i]+ " ");
    }
于 2013-04-15T15:10:07.880 回答