例如:strEquation="36+5-8X2/2.5"
我的代码是:
String[] tmp = strEquation.split("[X\+\-\/]+");
for(int i=0; i<tmp.length; i++)
Log.d("Split array",tmp[i]);
我的输出正如我所认为的那样:
36
5
8
2
2.5
我希望tmp
字符串数组也会放我正在拆分的字符,如下所示:
tmp[0] = 36
tmp[1] = +
tmp[2] = 5
tmp[3] = -
tmp[4] = 8
tmp[5] = X
tmp[6] = 2
tmp[7] = /
tmp[8] = 2.5
知道怎么做吗?
在每个字符之前或之后拆分X
+
-
/
怎么样?顺便说一句,您不必在角色类中逃避+
和/
([...]
)
String[] tmp = strEquation.split("(?=[X+\-/])|(?<=[X+\-/])");
似乎可以解决问题。
我会说你试图获得所有的匹配项,而不是拆分字符串
Matcher m = Pattern.compile("[X+/-]|[^X+/-]+").matcher(strEquation);
while (m.find()) {
System.out.println(m.group());
}
但上面的答案更聪明:)
另外:您不需要转义+
并在方括号内/
字符;减号 ( -
) 符号只有在列表中不是第一个或最后一个字符时才需要转义