Как извлечь правильную строку?

#java #string #stringtokenizer

#java #строка #stringtokenizer

Вопрос:

У меня есть такая строка:

  14.809180,56.876968,0.000000 14.808170,56.877048,0.000000 14.805100,56.877220,0.000000 14.804130,56.877338,0.000000
  

т.е. в начале есть пробел, а также после 0.000000 есть пробел. Я просто хочу извлечь 14.XYZ и 56.XYZ . Как я могу это сделать?

Комментарии:

1. Вы пробовали метод String#split(), возможно, делали split("[,\s] "); или что-то подобное.

Ответ №1:

Согласно моему комментарию, попробуйте String#split(…) , например:

   String test = "14.809180,56.876968,0.000000 14.808170,56.877048,0.000000 14.805100,56.877220,0.000000";
  String[] tokens = test.split("[,\s] ");
  for (String token : tokens) {
     System.out.println(token);
  }
  

"[,\s] " это регулярное выражение, которое помогает методу split разделить строку, используя один или несколько пробелов (s) или запятую.

Комментарии:

1. Во время итерации мне просто нужны 14.xyz и 56.xyz… что мне делать в этом случае?

2. Чтобы пропустить каждую третью итерацию, я изменил цикл foreach на обычный для цикла String[] tokens = coordinates.split(«[,\s] «); for(int j=1;j длина;j ){ if(j%3!=0)System.out.println(токены[j]); }

Ответ №2:

Это разделит и повторит все десятичные дроби во входной строке

 String groups[] = input.split(" ");
for(int i = 0; i < groups.length; i  ) {
   String decimals[] = groups[i].split(",");
   for(int j = 0; j < decimals.length; j  ) {
      float f = Float.parseFloat(decimals[j]);
      //do something with f
   }
}
  

Ответ №3:

Возможно, это не самое красивое решение, но оно будет работать.

 String[] myStrings = uglyString.spli(",");
Integer firstNum = new Integer(myStrings[0]);
Integer secondNum = new Integer(myStrings[1]);
  

Ответ №4:

используется String.split() для разделения каждого числа, а затем Double.valueOf() для преобразования его в a double .

 String string = "14.809180,56.876968,0.000000 14.808170,56.877048,0.000000 14.805100,56.877220,0.000000 14.804130,56.877338,0.000000";
String[] numStrings = string.split("[ ,]");
for (String num : numStrings) {
    double d = Double.valueOf(num);
    // ...
}