Разделение строки в java сначала создает пустой элемент - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь разделить укус на несколько или единственное вхождение "O", и все другие символы будут точками.Мне интересно, почему это сначала приводит к пустой строке.

String row = ".....O.O.O"
String[] arr = row.split("\\.+");

Это производит:

["", "O", "O", "O"]

Ответы [ 3 ]

0 голосов
/ 24 мая 2018

Символ "+" удаляет несколько экземпляров разделителя, поэтому по сути ваш разделитель разбивает следующую строку на "."

.0.0.0.

Это, конечно, означает, что ваш первыйполе пустоеОтсюда и результат, который вы получаете.

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

Java - Обрезать начальные или конечные символы из строки?

0 голосов
/ 24 мая 2018

Вам просто нужно убедиться, что все конечные или начальные точки удалены.

Итак, одно из решений:

row.replaceAll("^\\.+|\\.+$", "").split("\\.+");
0 голосов
/ 24 мая 2018

Для этого шаблона вы можете использовать replaceFirstMethod (), а затем разделить на точку

String[] arr = row.replaceFirst("\\.+","").split("\\.");

Вывод будет

["O","O","O"]
...