看这个程序:
public class ListCharacters
{
public static void main(String[]args)
{
for(char c=0;c<128;c++)
{
if(Character.isLowerCase(c))
System.out.println("value:"+(int)c+"character:"+c);
}
}
}
请问:
1,Character.isLowerCase(c)这个方法接受的c是int型的还是char型的呢
2,System.out.println("value:"+(int)c+"character:"+c);这句中 (int)c 不太理解
当char型进行运算的时候不是自动提升为int型吗 如c<128 c++ 怎么还要强制转化呢
谢谢
public class ListCharacters
{
public static void main(String[]args)
{
for(char c=0;c<128;c++)
{
if(Character.isLowerCase(c))
System.out.println("value:"+(int)c+"character:"+c);
}
}
}
请问:
1,Character.isLowerCase(c)这个方法接受的c是int型的还是char型的呢
2,System.out.println("value:"+(int)c+"character:"+c);这句中 (int)c 不太理解
当char型进行运算的时候不是自动提升为int型吗 如c<128 c++ 怎么还要强制转化呢
谢谢
2,System.out.println("value:"+(int)c+"character:"+c);这句中 (int)c 不太理解
当char型进行运算的时候不是自动提升为int型吗 如c <128 c++ 怎么还要强制转化呢
谢谢
1.char型
2。你不(int)c写,他就会打印相对应的字符的。因为遇到字符串相加的时候会调用其基本类型的包装类型的toString,也就是包装成character类,(int)c写,可以包装成Integer类型!
3。你那是运算符!比如
int i =1;
char c = 2;
int ii = i+c;
2\在JAVA中,字符用16位unicode码表示,本来就是一个整型表示,只是显示器显示出来时是字符。
2. System.out.println("value:"+(int)c+"character:"+c)中"+"并不是计算用的。
就如1楼所说,int ii = i+c, c参与了计算所以会转换成int。在上面的语句中字符串相加,不强制转换打印的是字符。
2,(int)c 把字符转化为对应的ascii 如 'A' 转化后就是 65 。
直接打印是打印该字符。
弄不准要接受什么类型的参数的时候,看API。
但是如果字符串用“+”,这个表示字符串的链接,
会默认调用toString()方法,然后字符串连接。
当char型进行运算的时候可以直接相加.这个时候是以它们的ASC码相加.但是输出的时候,如果没有转化,就是以变量的类型来输出,是char输出字符,是int则输出整形数.
(int)c int输出,否则char输出。