public class TestStringToChar{
  public static void main(String args[]){
     String str="1+2";
     String[] s=str.split("+");
     int sum=0;
     for(int i=0;i<s.length;i++){
        sum+=Integer.valueOf(s[i]);
     }
     System.out.println(sum);
  }
}

解决方案 »

  1.   


    public class TestStringToChar{
          public static void main(String args[]){
                String str="1+2";
                String[] s=str.split("\\+");
                int sum=0;
                for(int i=0;i<s.length;i++){
                      sum+=Integer.valueOf(s[i]);
                }
                System.out.println(sum);
          }
    }
      

  2.   

     String[] s=str.split("+");改成   String[] s=str.split("\\+");因为split中的参数是正则表达式,而+在正则表达式是有固定含义的。
      

  3.   

    这个问题很有趣,主要是因为正则表达式中像 '+' '*' '|' 等符号有相应的不同意义。
    所以要只要稍微改变下就OK了。
     String[] s = str.split("[+]"); 
      

  4.   

    +  :匹配1或多个正好在它之前的那个字符。
    也叫元字符。
    split中的参数是正则表达式。
    如果使用元字符进行分割的时候需要转义
      

  5.   

    PatternSyntaxException 模式语法异常
    Dangling meta character '+' near index 0
    单独的元字符,就是元字符不能单独出现,如果是非元字符那可以
      

  6.   

    不仅仅要String[] s=str.split("\\+");
    sum+=Integer.valueOf(s[i]);还要改成sum+=Integer.parseInt(s[i]);
    运行结果:3