关于Java中char,int的互转

本文深入探讨了Java中char与int类型之间的相互转换方法,并通过示例展示了如何安全地实现字符与数字之间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天做大疆的笔试题,遇到了这个蛋疼的问题,居然花了很多时间在这个小知识点上。下面总结下。

先来看看直接转换会得到什么结果:

        char c = 'a';
        int i = c;
        System.out.println("letter char to int: "+i);
        char c2 = '9';
        int i2 = c2;
        System.out.println("numeric char to int: "+i2);
        int i3 = 9;
        char c3 = (char) i3;
        System.out.println("single int to char: "+c3);
        int i4 = 999999999;
        char c4 = (char) i4;
        System.out.println("big int to char: "+c4);

输出:

letter char to int: 97
numeric char to int: 57
single int to char: (这里其实输出了一个制表符,即ACSII为9对应的字符)
big int to char: 짿

会发现char直接转int会得到相应字符的ASCII码值。注意到上面的转换并没有加强制转换,这是因为byte、short、char在运算的时候本身就会先转换成int再进行运算。当然加上也可以,对结果不影响。
而int转char则必须要加上强制转换(小类型转大类型),转换结果也是将int值作为ACSII码值去找对应的字符。

如果想将一个字符9转换成数字9,或者将数字9转换成字符9,就要使用如下操作:

        char c = '9';
        int i = Character.getNumericValue(c);
        System.out.println("char to int: "+i);
        int j = 9;
        char c2 = (char) (j+48);
        System.out.println("int to char: "+c2);

输出

char to int: 9
int to char: 9

注意:以上操作是不安全的,必须得首先确定能够转换,才能进行上述操作。实际使用时一定要判断。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值