请问如何把str="1+2"字符串
      转换成
数值型并得到结果3(数值型),怎么转换
    好像用Integer.parseInt(str)得不到想要的结果,这个只能把单个的数值型字符转换成数值

解决方案 »

  1.   

    class test 
    {

    public static void main(String[] args)
    {
    String str="1+2";
    char[] ch=new char[3];
    for(int i=0;i<3;i++)
    {
    ch[i]=str.charAt(i);
    }
    int a=Integer.parseInt(Character.toString(ch[0]));
    int b=Integer.parseInt(Character.toString(ch[2]));
    System.out.println(a+b);

    }
    }
    上面的代码估计能解决你的问题,不过可能不是你要的答案。呵呵。。抛砖引玉吧。
      

  2.   

    非常感谢,不过的确不是我所想的结果 
        如果是:"1/2",那就要多写一句System.out.println(a/b);
        比如:"1+2","1-2","1*2","1/2"   用一个语句把这几种情况全部都实现,哪位知道的请指点一下哈
      

  3.   

    现在没有这样的语法,得自己编。
    参见编译原理,语法解析。怀念foxbase中的&代换啊。
      

  4.   

    就是呀~~~!!
        VF中用&就可以把这种类型的
    数值表达式的字符串直接转换成数值表达式
    java中应该也行的,只是一下忘了,我前几天还弄过的,也是用的Double.parseDouble();都行了的,被我给又改了,现在再弄就不行了,真怪了!!
      

  5.   

    请问如何把str="1+2"字符串
          转换成
    数值型并得到结果3(数值型),怎么转换
        好像用Integer.parseInt(str)得不到想要的结果,这个只能把单个的数值型字符转换成数值//////////////////////////////不知道LZ为什么非要 str="1+2",我有两个简便方法:
    1,  str=""+(1+2);
    2,如果不介意再引入个中间变量 int iv=i+2; str=""+iv; 这样问题不是全部解决了.呵呵
      

  6.   

    import java.util.StringTokenizer;
    public class test
    {
     public static void main(String [] args)
     {
     
     
      StringTokenizer st = new StringTokenizer("12+11","+-*/",true);
     // StringTokenizer st = new StringTokenizer("12-11","+-*/",true);
     // StringTokenizer st = new StringTokenizer("12*11","+-*/",true);
     // StringTokenizer st = new StringTokenizer("12/11","+-*/",true);

      Integer oper1=new Integer((String)st.nextElement());
      String operWay=(String)st.nextElement();
      Integer oper2=new Integer((String)st.nextElement());
      System.out.println(operWay.charAt(0));
        
        switch(operWay.charAt(0))//用操作符来判断做哪种运算
        {
         case '+':System.out.println(oper1.intValue()+oper2.intValue());break;
         case '-':System.out.println(oper1.intValue()-oper2.intValue());break;
         case '*':System.out.println(oper1.intValue()*oper2.intValue());break;
         case '/':System.out.println(oper1.intValue()/oper2.intValue());break;
        }
     
     }
    }
      

  7.   

    呵呵,谢谢大家的支持哈!!!~~~搞了一个通宵终于把仿计算器(标准版)做出来了.....    我用的方法和上面   zt7763674(板凳球员)  的想法差不多的,都是用了一个专门的方法来解决的,里面也要分别判断是什么运算符  
         hbyufan() 说的两种方法我还没用过,应该也行吧.我下来再试一下,多学习学习~~~`
      

  8.   

    Integer.parseInt(str) 里面str要求是纯数字的string