2013-04-15 3 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 и к следующему номеру.

Как я могу это сделать?


Edit: Решение

Тестирование ответы, что это работает идеально подходит для моей проблемы это решение:

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*" 

Если он есть, он будет разделен на th e rest, если нет, это просто будет проигнорировано.

+1

может быть '*' вместо '+'? – jamp

+0

Да, это должно учитывать еще больше случаев, хороший улов –

+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]+ " "); 
    } 
Смежные вопросы