黑马程序员技术交流社区

标题: 数字char字符转换成int的方法 [打印本页]

作者: 张志东    时间: 2011-11-26 16:36
标题: 数字char字符转换成int的方法
        package day1;

        public class MainMethod {

                public static void main(String[] args) {
                        char ch = '5';
                        int i = ch;
                        System.out.println(i);

                }

        }
-----------------------------------------------------------------------
          当我们运行上面一段小Demo的时候会发现输出的并不是我们想象中的数字5,为什么?因为在编码的时候ASC编码的时候整数和相对应的char字符正好相差48,那么在将char类型的数字转换成int类型的数字时只需要减去48就Ok了。
作者: jianbin65    时间: 2011-11-26 22:00
还可以把你的单引号去掉{:soso_e129:}
作者: 强子    时间: 2011-11-28 14:37
Integer.parseInt(ch)
作者: 刘一扬    时间: 2011-11-28 15:37
输出铁定不是5      int i = ch;  把ch中保存的数据赋给i,  ch中保存这字符'5',对应的ascii编码是0x35   ,这时候就是把ch提升为int型,然后赋给i   ,
System.out.println(i);   因为i是int类型,所以方法调用Integer中的toString方法,输出i里保存的数字
而System.out.println(ch);  调用Character中的toString 方法,输出ch里保存数据所对应的字符





作者: 应国炎    时间: 2011-11-29 00:32
数字5和字符5在内存中的表现形式是不一样的

我这里有解决方法:
public class Test
{

        public static void main(String[] args)
                {
                       
                        char ch = '5';
                        String s = String.valueOf(ch);
                        int i = Integer.parseInt(s);
                        System.out.println(i);

                }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2