java split несколько разделителей

Мне нужно разбить строку на разделитель — и . . Ниже мой желаемый результат.

но мой следующий код не работает.

Я думаю, что вам нужно включить оператор регулярного выражения ИЛИ:

Что у вас будет соответствовать:
[DASH, а затем DOT вместе] -.
не
[DASH или DOT любой из них] — или .

Попробуйте это регулярное выражение «[-.]+» . «+» Обрабатывает последовательные символы разделителя как один. Удалите плюс, если вы этого не хотите.

Вы можете использовать регулярное выражение » W». Это соответствует любому символу, отличному от слова. Требуемая строка:

Используя Guava, вы можете сделать это:

Строка, которую вы даете split , является строковой формой регулярного выражения, поэтому:

Это означает, что нужно разбить любой символ в [] (нам нужно избежать — с обратным слэшем, потому что он является специальным внутри [] , и, конечно, нам нужно избежать обратного слэша, потому что это строка). (Наоборот, . обычно является специальным, но не является специальным внутри [] .)

Я бы использовал Apache Commons:

Он будет разбит на любой из указанных разделителей, в отличие от StringUtils.splitByWholeSeparator(str, separator) , который использует полную строку в качестве разделителя

Для двухсимвольной последовательности в качестве разделителей «И» и «ИЛИ» это должно быть выполнено. Не забывайте обрезать при использовании.

Вы также можете указать регулярное выражение как аргумент в методе split(). Ниже приведен пример.

Лучше использовать что-то вроде этого:

Добавьте еще несколько символов в качестве образца. Это самый безопасный способ использования, поскольку обрабатываются методы . и ‘ .

Попробуйте этот код:

ИМХО, регулярные выражения иногда могут быть излишними, поскольку их может быть очень трудно отлаживать

Если мне нужна лучшая производительность, чем указанная выше, я полагаюсь на Webpack или LLVM + emscripten для оптимизации.

Если вы знаете, что sting всегда будет в одном формате, сначала разделите строку на основе . и сохраните строку в первом индексе переменной. Затем разделите строку во втором индексе на основе — и сохраните индексы 0, 1 и 2. Наконец, разделите индекс 2 предыдущего массива на основе . , и вы должны были получить все соответствующие поля.

Обратитесь к следующему фрагменту:

Посмотрите другие вопросы по меткам java regex или Задайте вопрос

В настоящее время мой код только отделяет слова от пробелов, но я также хочу отделить «.». и тоже. Вот мой текущий код:

Например, если пользователь ввел «хлеб, молоко, яйца» или «Um. awkss», он рассмотрит это одно слово, и я хочу, чтобы каждое слово было его собственным словом.

И пока я здесь, я не могу получить

Вы можете разделить это регулярное выражение

Кронштейны используются, когда вам нужен любой из символов в скобках, + означает, что символы могут быть объединены один или несколько раз. для создания одного единственного разделителя, то есть space and period или comma and space .

Как правильно ее разбить на массив?

1 ответ 1

Метод split в качестве первого аргумента принимает регулярное выражение, соотвестственно там можно перечислить несколько разделителей, разделенных в свою очередь символом | :

Если Вам нужно тоько имя файла, разделенное по точкам (путь не нужен), то:

Источник: computermaker.info

Техника и Гаджеты
Добавить комментарий