import java.io.*;public class MyTest {
public static void main(String args[]){
String s = "12+45+33+5+89";

String[] ss=s.split("+");
int sum=0;
for(int i=0;i<ss.length;i++)
sum+=Integer.parseInt(ss[i]);
System.out.println(s+"="+sum);
}}
出现错误
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
+
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.split(Unknown Source)
at java.lang.String.split(Unknown Source)
at MyTest.main(MyTest.java:6)谢谢大家帮忙解决

解决方案 »

  1.   

    split的参数本质上是个正则表达式 +在正则表达式中有特殊含义 不能单独使用 要用'\+'转义
      

  2.   

    额 在正则表达式中是\+ 写成字符串就要变成\\+ 应该是这样的public class MyTest {
        public static void main(String args[]){
            String s = "12+45+33+5+89";
            
            String[] ss=s.split("\\+");
            int sum=0;
            for(int i=0;i<ss.length;i++)
                sum+=Integer.parseInt(ss[i]);
            System.out.println(s+"="+sum);
        }
    }