String s = " x + y ";
String[] sArr = s.split("\\s*-|+|*|/\\s*");
我有一个字符串,例如:" x + y "
我想要一个包含元素的数组:x, +, y
(没有空格)而不是+
,如果我使用-,/,*
他们也应该工作。我正在尝试类似上面代码的内容,但由于+
和/或*
,这会产生错误。它将它们作为正则表达式的一部分。
我该如何使这项工作?请帮忙。
答案 0 :(得分:2)
String s = " x + y - z / x * y ";
s = s.replaceAll("\\s+", "");
第一种选择:
String[] sArr = s.split("((?<=[\\+\\-\\*/])|(?=[\\+\\-\\*/]))");
System.out.println(Arrays.toString(sArr));
参考:https://stackoverflow.com/a/2206432/5352399
第二种选择:
String[] sArr = s.split("\\s*");
System.out.println(Arrays.toString(sArr));
在这两种情况下,输出:
[x, +, y, -, z, /, x, *, y]
如果您不想在输出中使用运算符,则可以执行以下操作。
String[] sArr = s.split("\\s*[-,+,*,/]\\s*");
System.out.println(Arrays.toString(sArr));
输出:
[x, y, z, x, y]
答案 1 :(得分:1)
String s = " x + y ";
String[] sArr = s.trim().split("\\s+");
System.out.println(sArr[0]+":"+sArr[1]+":"+sArr[2]);
输出:x:+:y