第一个问题:-
多重声明
String myString;
第二个问题:-
字符串初始化不正确。末尾缺少双引号。从两端卸下支架和支架。
String myString = "a+b-c*d/e";
第三个问题:-
用String对象而不是数组对象初始化的String数组。
String[] result=new String(); // Should be `new String[size]`
实际上,您无需事先初始化数组。
第四个问题:-
String.split使用正则表达式作为参数,您已经传递了一个数组。不管用。
用: -
String[] result = myString.split("[-+*/]");拆分所有运营商。
关于您的声明:-
以及
=, -, *, d, /(也包括一系列运算符)。
我不明白你在这里想要什么。您的示例字符串不包含
=。而且
d不是
operator。请查看是否要对其进行编辑。
更新:-
如果您打算将运算符也保留在数组中,则可以使用此正则表达式:-
String myString= "a+b-c*d/e";String[] result = myString.split("(?<=[-+*/])|(?=[-+*/])");System.out.println(Arrays.toString(result));System.out.println(Arrays.toString(myString.split("(?<=[-+*/])")));System.out.println(Arrays.toString(myString.split("(?=[-+*/])")));输出:-
[a, +, b, -, c, *, d, /, e][a+, b-, c*, d/, e][a, +b, -c, *d, /e]
(?<=...)手段
look-behind assertion和
(?=...)手段
look-ahead assertion。



