String s = "2+4+5+67" 计算表达式的值
这个怎么提取字符串里面的数字再进行运算呀?没有头绪..

解决方案 »

  1.   

    如果只考虑这个字符串的话,可以用String的split方法把数字字符提取出来  再Integer.parseInt方法转换成int型的整数 在求和
      

  2.   

    如果要复杂一些的话,可以使用JavaCC
      

  3.   

    public class AddString{
    public static void main(String[] args){
    String s="2+4+5+67";
    String[] a=s.split("[^0-9]");
    int b=0;
    for(int i=0;i<a.length;i++)
    {
        b+=Integer.parseInt(a[i]);
    }
    System.out.println(b);
    }
    }
      

  4.   

    import java.util.regex.*;public class Test{
    public static void main(String[] args){
    String str="2+4+5+67";
    String reg="\\d+";
    int sum=0;
    Pattern p=Pattern.compile(reg);
    Matcher m=p.matcher(str);
    while(m.find())
    {
    sum+=Integer.parseInt(m.group());
    }
    System.out.println(sum);
    }
    }
      

  5.   

     String s = "2+4+5+67";
           s=s.replace('+','-');//+比较特殊,先替换成其它字符,比如-
           String[] str=s.split("-");//按照替换后的字符,分割字符串
           int sum=0;
           for (int i = 0; i < str.length; i++) {
               sum+=Integer.parseInt(str[i]);
               
           }
           System.out.println("===="+sum);
      

  6.   

    String s="2+4+5+67";
    String[] str=s.split("+");
     int sum=0; 
          for (int i = 0; i < str.length; i++) { 
              sum+=Integer.parseInt(str[i]); 
              
          } 
          System.out.println("===="+sum);
      

  7.   

    split或者token
    前者上面大家说很多了 我给个token的String s = "2+4+5+67"; 
    StringTokenizer token = new StringTokenizer(s,"+");
    int sum = 0; 
    while(token.hasMoreTokens()){
        sum += Integer.parseInt(token.nextToken()); 
    }当然如果有加有减的话 用3楼的比较好
      

  8.   


    //数字组成的字符串转成整数,并对整数求和
    public void stringToInt(){
    String str = "2+4+5+67";
    String[] number = str.split("\\+");
    int sum = 0;
    for(int i = 0; i < number.length; i++){
    sum += Integer.parseInt(number[i]);
    }
    System.out.println("sum=" + sum);
    }