如何由String 对象“123+4343=”计算其结果?

解决方案 »

  1.   

    String strInt = "123+4343=";
    int int1 = Integer.parseInt(strInt.substring(0,3));
    int int2 = Integer.parseInt(strInt.substring(4,8));
    int intReturn = 0;
    if("+".equals(strInt.substring(3,4))){
    intReturn = int1 + int2;
    }
    System.out.println(intReturn);
      

  2.   

    截取字符串,并将其转化成INT型,再相加。如一楼!
      

  3.   

    一楼的方法可以···还可以用String.split()
      

  4.   

    网上应该有相关的代码的,lz搜索一下跟expression相关的类试试
      

  5.   

    这是用split实现的··还可以计算"123+123+236+....+n="的值 ··
    public class Test{
      public static void main(String args[]){
    String strInt = "123+4343=";
    String[] str = strInt.split("\\+");
    int sum=0;
    for(String s:str){
    sum+=Integer.parseInt(s.replace("=",""));
    }
    System.out.println(sum);
      }
    }
      

  6.   

    public class Test{
    public static void main(String args[]){
     String str="123+4343=";
    int t1=Integer.parseInt(str.substring(0,3));
    int t2=Integer.parseInt(str.substring(4,8));
    int sum=t1+t2;
    System.out.println(str+sum);
    }
    }跟一楼一样,只是不知道为什么要equals"+",哪位大虾能指点一下吗?
      

  7.   

    equals 是比较两个字符串相不相等的方法
      

  8.   

    为什么split无法返回数组长度
    public class Test{
    public static void main(String args[]){
    String str="123+4343+88888+234=";
    String[] strArray=str.split("//+");
    int len=strArray.length();
    System.out.println(len);
    }
    }为什么不能返回strArray的长度?应该怎样?
      

  9.   

    sum+=Integer.parseInt(s.replace("=",""));用的真妙~~~~
      

  10.   

    luomopiao(落寞漂) :有两个地方写错了··
    1.是"\\+"不是"//+"
    2.是length不是length()
      

  11.   

    刚刚再次调试,发现正则法行不通呀,没有办法去除“=”
    用replace是不可能把“=”替换掉~~
    大家可以看看用正则法:
    import java.lang.String;
    public class Test {
    public static void main(String args[]){
    String strInt="123+4343+45454+5656=";
    strInt=strInt.replace('=',' ');
    System.out.println(strInt);
    String[] str=strInt.split("\\+");
    int sum=0;
    int len=str.length;
    System.out.println(len);
    for(int i=0;i<len-1;i++)
    {
    sum=sum+Integer.parseInt(str[i]);
    }
    System.out.println(sum);
    }
    }这个方法行不通,因为无法去除“=”~~除非再截取置换后的null值哪位朋友可以用Split做出,??
      

  12.   

    1.strInt=strInt.replace('=',' ');要用双引号,第二个参数是""(空)而不是" "(空格)
    2.for(int i=0;i<len-1;i++)中是i<len(0 1 2 3....len-1为合法下标)或者可以写成i<=len-1
      

  13.   

    有那种函数吧?
    计算表达式的库,JAVA用得不多,不是很清楚,但C++,php等都是有的。可以计算 如: (3 + 4)*2 = 等通用的数学表达式。