int a = 0x100;
System.out.println(new Integer(a).intValue() + "<------------");

解决方案 »

  1.   

    0开头的表示8进制整数,0x开头表示16进制整数,如果入参为int型,是无法判别的。
    建议LZ将入参类型改成String,然后用正则表达式"[1-9]\\d*"判断入参合法性即可。
      

  2.   


    如果参数要是String类型也就没什么好说的了,就是因为参数是int 给出的值又不好确定进制,要想办法能识别出进制,int类型不好用正则表达式
      

  3.   


    convert方法参数题目给的是int类型,是给定的方法,我要写的是方法里的代码,之后题目是由系统判定给分,系统会用一大堆实例去检测这个方法,不可以去修改方法模型,题目提交上去题目系统会去调用这个方法,题目系统传进来的参数我不好改,系统只会根据实例测试这个方法,最后自动给出分数,如果自己改方法参数类型系统实例提供的int类型参数就穿不进来出错了
      

  4.   


    5L说的有道理,既然方法不能改,就在入口把好关。如果从头到尾都是int型传递的,那就。。真没辙了,毕竟8进制16进制都是合法的整数啊。。
      

  5.   


    5L说的有道理,既然方法不能改,就在入口把好关。如果从头到尾都是int型传递的,那就。。真没辙了,毕竟8进制16进制都是合法的整数啊。。我回复的说的很清楚,入口不是我控制的,方法内可能的确解决不了,感觉jdk应该提供能识别int类型进制的方法
      

  6.   

    jdk7: 0b开头可以表示二进制.
    方法签名已经经过编译不可改变,你以0xA和10调用方法,编译后的class不变.
    答案就是楼主奇思妙想不断,但我认为你的奇思妙想实现不了,也不应该实现(逻辑不对)