基本上,我想将一个字符串拆分成一个由空格和运算符分隔的数组,但在删除空格时请保留运算符
前任。 3 52 9+- 2 3 * /
将 [3][52][9][+][-][2][3][*][/]
分割时想要的逻辑是使用空白的定界符,而不使用算术符号的定界符。为此,我们可以使用先行符按符号进行拆分,并可以使用Plain\\s
来按空格进行拆分并将其从结果中删除。
String input = "3 52 9+- 2 3 * /";
input = input.replaceAll("([\\+\\-*/])(.)", " $1$2")
.replaceAll("\\s+", " ");
String[] parts = input.split("(?<=[\+\-*/])|\\s")
System.out.println(Arrays.toString(parts));
输出:
[3, 52, 9, +, -, 2, 3, *, /]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句