У меня есть строка:
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]
Есть ли что-то, что я могу сделать для этого, чтобы заставить многосимвольные операторы появляться в массиве, как я хочу?
И как второстепенный вопрос, который не так важен, есть ли способ в регулярном выражении обрезать пробел вокруг букв?