Вы можете построить String
, присоединив массив и затем передав его в регулярное выражение (+|-|*|/|%|^
), единственная проблема в том, что вы используете некоторые символы, которые имеют специальное значение в регулярном выражении (например, *
) - Клини звезда), и они должны быть экранированы, тогда как другие не должны.
Чтобы сохранить контроль над этим, вы можете сопоставить каждый символ, на который вы хотите разбить строку, с регулярным (частью) выражением, которое должно быть б:
public static final Map<Character, String> opsToRegularExpression = Map.of(
'+', "\\+",
'-', "-",
'*', "\\*",
'/', "/",
'%', "%",
'^', "\\^"
);
public static final String regexpString =
String.format("\\n+|\\s+|%s", String.join("|", opsToRegularExpression.values()));
// ...
for (String inputSplit : userInput.split(regexpString)) { }