我是Java新手。有一个字符串“a + b - c * d / e”,我想得到a,b,c,d,e
但它失败了(java.util.regex.PatternSyntaxException)
String str = "a + b - c * d / e";
String [] value = str.split("+-*/");
提前致谢。
答案 0 :(得分:1)
根据以下正则表达式拆分输入。
String str = "a + b - c * d / e";
String[] value = str.split("\\s*[-+*/]\\s*");
System.out.println(Arrays.toString(value));
输出:
[a, b, c, d, e]
\\s*
匹配零个或多个空格。 [-+*/]
匹配给定列表中的单个字符。我建议你把-
放在字符类的开头或结尾处,因为字符类中间的-
有时会像范围操作符一样。
<强>更新强>
如果您希望程序只返回操作符,请尝试此操作。
String str = "1.23 + 3 - 5 * 4 / 5.7";
String[] value = str.split("\\s*\\d+(?:\\.\\d+)?\\s*");
ArrayList<String> list = new ArrayList<String>();
for(String s: value){
if(!s.equals("")) list.add(s);
}
System.out.println(list);
输出:
[+, -, *, /]