我有一个表达式((((((((((0x0fffffff&116)^65)&128)&77)&74)^55)^109)^21)&69)|188)
是String型的
我想转换成Integer型,得到结果253,请问怎么算?

解决方案 »

  1.   

    System.out.println(((((((((((0x0fffffff&116)^65)&128)&77)&74)^55)^109)^21)&69)|188))
    得到结果253
    但是这样:String str = "((((((((((0x0fffffff&116)^65)&128)&77)&74)^55)^109)^21)&69)|188)";
    Integer i = Integer.valueOf(str);
    System.out.println(i);就会出现NumberFormatException
      

  2.   

    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.script.ScriptEngine;
    import javax.script.ScriptEngineManager;
    import javax.script.ScriptException;public class Test{
        public static void main(String[] args) {
            ScriptEngineManager manager = new ScriptEngineManager();        ScriptEngine engine = manager.getEngineByName("javascript");
            try {
                String str="((((((((((0x0fffffff&116)^65)&128)&77)&74)^55)^109)^21)&69)|188) ";
                Double d = (Double) engine.eval(str);
                Integer i=d.intValue();
                System.out.println(i);
            } catch (ScriptException ex) {
                Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
            }    }
    }
      

  3.   

    给个网址给你参考一下,里面含括了所有java里面的运算符解释:点击这里
      

  4.   

    http://blog.csdn.net/axman/archive/2004/11/04/167002.aspx
      

  5.   

    Integer i = Integer.valueOf(str);
      

  6.   

    我把javax.script给拷到我项目里了,试了,出现空引用异常
      

  7.   


    把项目改成java1.6了,好使了