Разбиение строки в 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