我正在尝试获取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*");
答案 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]+ " ");
}