Java String.split() Regex

У меня есть строка:

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]

Могу ли я что-то сделать с этим, чтобы сделать несколько символьные операторы появляются в массиве так, как я хочу?

И в качестве второстепенного вопроса, который не так важен, есть ли в регулярном выражении способ обрезать пробелы вокруг букв?

15
задан user677786 25 March 2012 в 00:29
поделиться