99%的java程序员都会做错的简单问题.部分代码如下:
String str = "XXXX";//XXXX为全角数字, 如234
int code ;
try {
    code = new Integer(str).intValue();
}
catch(Exception e) {
    code = 0;
}
System.out.println("code=" + code);大家知道code的输出值是多少吗?请知道答案的朋友把答案写在下面,我好统计一下大概会有多少朋友会答错,是否会达到99%.

解决方案 »

  1.   

    XXXX
    不知道是对是错,哈哈.
      

  2.   

    Integer这个构造的内部是使用Character类的digit(int, int)方法来处理的所有Character.isDigit(int)返回true的字符都可以被处理为数字包含数字的 Unicode 字符范围: '\u0030' 到 '\u0039',ISO-LATIN-1 数字('0' 到 '9') 
    '\u0660' 到 '\u0669',Arabic-Indic 数字 
    '\u06F0' 到 '\u06F9',扩展了的 Arabic-Indic 数字 
    '\u0966' 到 '\u096F',梵文数字 
    '\uFF10' 到 '\uFF19',全形数字 
    其他许多字符范围也包含数字。 
      

  3.   

    根源代码编码也有关, ANSI保存的源代码结果是半角的数字
    UTF-8保存的源代码编译时有警告, 结果是0
      

  4.   

    哦,应该是无论全角半角,生成的都是数字格式,JAVA都是能认识的
      

  5.   

    code = 2345
    结果我已经验证了
      

  6.   

    根源代码编码有关
    ANSI保存的源代码结果是半角的数字
    UTF-8保存的源代码编译时有警告, 结果是0
      

  7.   

    public class testString{
    public static void main(String argz[]){
    String str = "234";//XXXXΪȫ½ÇÊý×Ö, È磲£³£´
    int code ,i=234;
    try {
        code = new Integer(str).intValue();
    }
    catch(Exception e) {
        code = 0;
    }
    System.out.println(""+code);
    System.out.println(""+i);
    System.out.println(str);
    }
    }结果是:
    234
    234
    234
    没什么区别阿!!?什么半角全角的!!
      

  8.   

    呵呵,大家都很聪明啊,看来我才是那99%中的人啊.
    前段时间我写程序时,就因为这个问题郁闷了好长时间啊
    我们的程序要求在资源文件中定义一些key,用于页面显示控制,如页面显示多少条数据,要求key值只能是数值类型的.后来我就使用了上面我写的代码.但这段代码隐藏了一个我不知道的bug,就是全角数字java无法识别出来.虽然页面也能正常显示,结果正确,但我个人认为这属于一个潜在的bug.后来我又修改了代码,增加了验证掉全角数字的逻辑.
      

  9.   

    如果java能把下面的代碼轉換出來就好了int code = new Integer("二三四").intValue()就好了
    或者
    int code = new Integer("貳參肆").intValue()
      

  10.   

    如果java能把下面的代碼轉換出來就好了int code = new Integer("二三四").intValue()就好了
    或者
    int code = new Integer("貳參肆").intValue()-----------------
    楼上牛人这就是星和三角本质的区别