Java 使用字符串#split()拆分表达式

Java 使用字符串#split()拆分表达式,java,arrays,regex,string,Java,Arrays,Regex,String,我想将中缀运算转换为后缀运算。当输入作为已通过数组拆分的表达式提供时,我的代码可以工作。但是,当输入作为原始字符串表达式提供时,它不会 String[] exp={"23","+","32"}//this works String str="23 + 32"; String[]exp=str.split("//s+" );//this doesn't work 我认为您必须使用反斜杠而不是斜杠: String[] exp = str.split("\\s+"); 您的代码中有两个问题。第一个

我想将中缀运算转换为后缀运算。当输入作为已通过数组拆分的表达式提供时,我的代码可以工作。但是,当输入作为原始字符串表达式提供时,它不会

String[] exp={"23","+","32"}//this works
String str="23 + 32";
String[]exp=str.split("//s+" );//this doesn't work

我认为您必须使用反斜杠而不是斜杠:

String[] exp = str.split("\\s+");

您的代码中有两个问题。第一个是第二个
字符串[]
的变量名与第一个相同。第二个问题是,您使用的是前斜杠而不是后斜杠

    String[] exp = {"23","+","32"};
    String str = "23 + 32";
    String[] exp2 = str.split("\\s+"); // or " +"

    System.out.println(Arrays.toString(exp));
    System.out.println(Arrays.toString(exp2));
以上是正确的工作为我


我希望这有帮助。

什么是
//st
?你确定你不是指
\\s
?这通常是通过堆栈来完成的。您确定要使用阵列吗?您最终解决了问题吗?如果是这样的话,不要忘记对任何有帮助的答案进行投票,然后单击灰色勾选以接受对您最有帮助的答案。是的。。。早些时候,这是一个错误。但现在也不行了。当用空格拆分字符串表达式时,我们不是得到了与字符串[]exp={“23”、“+”、“32”}相同的数组吗