我想將字符串方程拆分成兩個數組:數字和運算符。Java:將字符串方程拆分爲數字和運算符
String expr = "3/20.0";
String[] numbers = expr.split("[+-/\\*]");
String[] operators = expr.split("[^+-/\\*]+");
System.out.println(Arrays.toString(numbers));
System.out.println(Arrays.toString(operators));
但我的代碼打印出:[3, 20, 0] [, /, .]
但我試圖讓[3, 20.0] [, /]
我不知道爲什麼逗號是在運營商陣列前面,但主要是我只是想20.0是數組數組中的一個元素,並保留我的運算符數組中的小數點。
FWIW:'+ - /'在字符類並不意味着「+或 - 或/「表示任何字符_between_ +和/。在ASCII中是「+, - 。/」。 (這就是爲什麼它匹配「。」)如果你想在字符類中放置一個,就把它放在最後。 –