我想知道是否可以在空格上拆分字符串,并避免使用所有数字,空格和运算符,例如+和 -
这就是我所拥有的,但我认为这是不正确的
String [] temp = expression.split("[ \\+ -][0-9] ");
假设我有一个表达式
x+y+3+5+z
我想摆脱其他一切,只将x,y和z放入数组
答案 0 :(得分:2)
我认为你的意思是:
String[] temp = expression.split("[\\s0-9+-]+");
这会在空格上分割,0到9,+
和-
。请注意,字符出现在单个字符类中,而不是多个单独的字符类。此外-
不需要在此处转义,因为它位于字符类的末尾。
答案 1 :(得分:1)
我认为这就是你所追求的:
String[] tmp = expression.split("[^a-zA-Z]+");
应将分隔符视为任何不是字母序列的。
测试运行
public class foo {
static public void main(String[] args) {
String[] res = args[0].split("[^a-zA-Z]+");
for (String r: res) {
System.out.println(r);
}
}
}
% javac foo.java
% java foo x+y+3+5+z
x
y
z