感谢大佬,原文链接https://blog.csdn.net/sxb0/article/details/
先看下面这段代码,猜猜会输出什么:
public static void main(String[] args) {
int a = 9; int b = 97; System.out.println("|" + (char)a + "|" + (char)b); }
大家猜 运行结果是什么?看看以下,是不是和你想的一样。
| |a
一种是自动转换,如char c = 97,会自动的将int类型的96转换成char的‘a’
另一种是强制类型转换,如int i = 97,char c = (char)i ,这样做了之后,char的值也是‘a’
为什么是a呢?因为字符‘a’对应的ASCII值是97.
强制类型转换一般是用于大的类型向小的类型转换,也叫窄化转换
自动转换一般是用于小的类型向大的类型转换,也叫扩展转换
但是以上变化都是把int 当为ascii编码来获得char的值。下面介绍一种方法,如果大家有其他方法,请多多指导。
public static void main(String[] args) {
int a = 9; String aStr = String.valueOf(a); char[] arry = aStr.toCharArray(); for (int i = 0; i < arry.length; i++) {
System.out.print(arry[i]); } }
运行结果还是为9.如果int a = 543, 数组arry长度会变为3。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177816.html原文链接:https://javaforall.net
