import java.util.*;
public class TT{
public static void main(String[] args){
char[] c=new char[26];
for(int i=0;i<26;i++){
c[i]=(char)('a'+i);
}
for(int j=0;j<26;j++){
System.out.printf("%d ",(int)c[j]);
}
}
}
我觉得第一个转换考的是字符和整数之间的强制转换,a-z转换成97-122不用赋值,因为a的ASCII值就是97,后面以此类推。0-9转换成48-57我就不懂了,这不就直接+48就行了。。不知道后面这个是什么意思。
直接加就可以,java有默认的类型转换
例如 int m=‘a’+'0';这个语句,是可以直接得出整型结果的,原理就是默认的类型转换;
例如char m=‘a’+10 你打印m会是个k
但是如果你先赋值,例如 int n=12; char m=100+n;就会报错了
需要改成char m=(int)(100+n) 这是强制类型转换
直接把它们当成字符使用就行, 注意是单引号的字符,不是双引号的字符串.
int value = 1 + '0'; 那么value 就是1 + 48, 等于49.
int value = 'a' + '0'; 那么value 就是97 + 48, 等于145.
明白了吗?
JAVA支持基本数据类型的自动转换 例如 int b = 'a' + 1;那么计算的时候JAVA会选择表数范围大的基本数据类型统一去计算.
'0' 和 'a' 为字符char类型 会自动转码
int temp1= 1 + '0';
int temp1 ='a'+1;
int temp2= 'a'+'0';
System.out.println(temp1);
System.out.println(temp2);
98
145