У меня есть строка:
String str = "a + b - c * d / e < f > g >= h <= i == j";
Я хочу разбить строку на все операторы, но включить операторы в массив, чтобы результирующий массив выглядел следующим образом:
[a , +, b , -, c , *, d , /, e , <, f , >, g , >=, h , <=, i , ==, j]
Я получил это в настоящее время:
public static void main(String[] args) {
String str = "a + b - c * d / e < f > g >= h <= i == j";
String reg = "((?<=[<=|>=|==|\\+|\\*|\\-|<|>|/|=])|(?=[<=|>=|==|\\+|\\*|\\-|<|>|/|=]))";
String[] res = str.split(reg);
System.out.println(Arrays.toString(res));
}
Это довольно близко, это дает:
[a , +, b , -, c , *, d , /, e , <, f , >, g , >, =, h , <, =, i , =, =, j]
Есть ли что-то, что я могу сделать, чтобы множественные символьные операторы появлялись в массиве так, как я хочу?
И в качестве второстепенного вопроса, который не так важен, есть ли в регулярном выражении способ обрезать пропуски вокруг букв?