Неправильный размер массива при разделении строки

#java

#java

Вопрос:

Я пытаюсь разделить последовательность строк следующим образом:

 String coordenates= "(37.3886303, -5.9953403)";
  

Но когда я использую разделение для получения обоих чисел:

 String[] coord=coordenates.split("[(,\s)] ");
System.out.println(coord.length);
  

Я получаю результат 3, когда мне нужно, чтобы он был 2, что там происходит?

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

1. Не проще ли сначала убрать скобку, а затем разделить запятой?

Ответ №1:

Попробуйте это. Это сначала разделится на скобки, а затем разделится на второй элемент массива, который имеет координаты без скобок. Второе разделение будет разделено на любое количество пробелов, за которым следует команда, за которой следует любое количество пробелов.

 
String[] coord=coordenates.split("[()]")[1].split("\s*,\s*");
System.out.println(coord.length);
System.out.println(Arrays.toString(coord));
  

С принтами

 2
[37.3886303, -5.9953403]
  

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

1. Ну, это работает отлично, но мне нужно было делать только с разделением, если это возможно, но все же спасибо за помощь.

2. Теперь проверьте это.

3. Я бы никогда не рассматривал возможность объединения обоих разделений, спасибо!!!