Как извлечь правильную строку? - PullRequest
0 голосов
/ 08 октября 2011

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

 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. Как я могу это сделать?

Ответы [ 4 ]

2 голосов
/ 08 октября 2011

Согласно моему комментарию, попробуйте 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) или запятая.

0 голосов
/ 08 октября 2011

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

String[] myStrings = uglyString.spli(",");
Integer firstNum = new Integer(myStrings[0]);
Integer secondNum = new Integer(myStrings[1]);
0 голосов
/ 08 октября 2011

Это разделит и выполнит итерацию по всем десятичным числам в input string

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
   }
}
0 голосов
/ 08 октября 2011

используйте String.split() для разделения каждого числа и затем Double.valueOf() для преобразования его в 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);
    // ...
}
...