У меня есть проблема, по которой я не могу найти ответ здесь, поэтому я прошу об этом.Java String split regexp возвращает пустые строки с несколькими разделителями
Дело в том, что у меня есть строка, и у меня есть разделители. Я хочу создать массив строк из вещей, которые находятся между этими разделителями (могут быть слова, числа и т. Д.). Однако, если у меня есть два разделителя рядом друг с другом, метод split возвращает пустую строку для одного из экземпляров.
Я проверил это против еще большего числа разделителей, которые последовательно. Я узнал, что если у меня есть n разделителей, у меня будет n-1 пустых строк в массиве результатов. Другими словами, если у меня есть и «» и „“ в качестве разделителей и предложения „Это очень хороший день, не правда ли“, то массив с результатами будет, как:
{... , "day", "", "isn't" ...}
Я хочу получить эти лишние пустые строки, и я не могу понять, как это сделать. Образец регулярного выражения для разделителей, что у меня есть это:
"[\\s,.-\\'\\[\\]\\(\\)]"
Также вы можете объяснить, почему есть лишние пустые строки в результирующем массиве?
P.S. Я прочитал некоторые аналогичные записи, которые включали информацию о втором параметре регулярного выражения. Я пробовал как отрицательные, нулевые, так и положительные числа, и я не получил результат, который я ищу. (один из вопросов имел ответ, говорящий, что -1 в качестве параметра может решить проблему, но это не так.
Так что же ваш код? – isnot2bad
это не связанный код, я думаю, что проблема связана с параметрами или с тем, как String использует Pattern и Matcher для создания массива результатов. – Mackiavelli