2013-04-15 29 views
1

我試圖獲取由逗號分隔的字符串的值。如何獲取由逗號分隔的字符串中的元素Java

這樣的事: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*"); 

回答

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

只需添加可選的零分割樣式

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

如果它在那裏它將被拆分如果不是,它會被忽略。

+1

也許 '*' 而不是 '+'? – jamp

+0

是的,這應該考慮更多的情況下,很好的catch –

+0

Thats Perfect!,它分離所有「雙」數字,並忽略0。 很多都感謝;) – Shudy

1

請使用下面的代碼

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

這將匹配 '0' ',0' 和 '0',並且將相應的分割。

0

使用的方法拆分從字符串

,我已經測試的一個示例:

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

    palabras = contenido.split(","); 

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