Разбиение строки в java на несколько символов

Я хочу разбить строку, когда символы символов встречаются "+, -, *,/, =" Я использую функцию split, но эта функция может принимать только один аргумент. Более того, она не работает с "+". Я использую следующий код: -

Stringname.split("Symbol");

Спасибо.

Ответ 1

String.split принимает в качестве аргумента регулярное выражение.

Это означает, что вы можете чередовать любой символ или абстракцию текста в одном параметре, чтобы разделить ваш String.

См. документацию здесь.

Вот пример в вашем случае:

String toSplit = "a+b-c*d/e=f";
String[] splitted = toSplit.split("[-+*/=]");
for (String split: splitted) {
    System.out.println(split);
}

Выход:

a
b
c
d
e
f

Примечания:

  • Зарезервированные символы для Pattern должны быть с двойным экранированием с \\. Изменить: здесь не требуется.
  • Скобки [] в шаблоне указывают класс символов.
  • Подробнее о Pattern здесь.

Ответ 2

Вы можете использовать регулярное выражение:

String[] tokens = input.split("[+*/=-]");

Примечание: - следует поместить в первую или последнюю позицию, чтобы убедиться, что он не считается разделителем диапазона.

Ответ 3

Вам нужно регулярное выражение. Addionaly вам нужен оператор regex OR:

String[]tokens = Stringname.split("\\+|\\-|\\*|\\/|\\=");

Ответ 4

Для этого вам нужно использовать соответствующий оператор regex. Большинство символов, которые вы указали, зарезервированы в регулярном выражении, поэтому вам придется избегать их с помощью \.

Очень исходное выражение будет \+|\-|\\|\*|\=. Относительно легко понять, каждый символ, который вы хотите, экранируется с помощью \, и каждый символ разделяется символом | (или). Если, например, вы хотели бы добавить ^, все, что вам нужно сделать, это добавить |\^ в этот оператор.

Для тестирования и быстрых выражений мне нравится использовать www.regexpal.com