String Parse java

时间:2016-03-26 21:18:58

标签: java

我的代码有问题。我认为问题在于delims=[+,-,*,/]+。当我为前写if (delims.equals("[+]+"))时,它只需要[+]。但是delims不等于[+]。我想你明白我的意思。 delims等于[+,-,*,/]+.

public static void main(String[] args) {

        System.out.println("Please enter your calculation");
        Scanner sc = new Scanner(System.in);
       String s=sc.next();
       String delims="[+,-,*,/]+";
       String[] tokens=s.split(delims);


       for(int i=0; i<1; i++){
        String s1=tokens[i];
        for (int j=1; j<2; j++){
        String s2=tokens[j];


      double n1=Double.parseDouble(s1);
      double n2=Double.parseDouble(s2);


      if (delims.equals("[+]+")){
        System.out.println(n1+n2);
    System.exit(0); }

        if (delims.equals("[-]+")){
            System.out.println(n1-n2);
        System.exit(0);}

        if (delims.equals("[*]+")){
                System.out.println(n1*n2);
        System.exit(0);}

                if (delims.equals("[/]+")){
                System.out.println(n1/n2);
                System.exit(0);
                }
}}}}

1 个答案:

答案 0 :(得分:1)

分隔符被消耗(扔掉),但你需要它。

请改为尝试:

String[] tokens = s.replace(" ","").split("\\b");

\b表示“单词边界”,数字被视为单词字符,因此当输入的数字部分为整数时,这将起作用。

我添加了对`replace'的调用以删除所有空格。