看这个程序:
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++ 怎么还要强制转化呢 
谢谢

解决方案 »

  1.   

    1,Character.isLowerCase(c)这个方法接受的c是int型的还是char型的呢 
    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.   

    1\楼主看看API就知道了
    2\在JAVA中,字符用16位unicode码表示,本来就是一个整型表示,只是显示器显示出来时是字符。
      

  3.   

    1. 接受的是char,因为你c定义的时候为char。
    2. System.out.println("value:"+(int)c+"character:"+c)中"+"并不是计算用的。
    就如1楼所说,int ii = i+c, c参与了计算所以会转换成int。在上面的语句中字符串相加,不强制转换打印的是字符。
      

  4.   

    1,楼上有正解
    2,(int)c 把字符转化为对应的ascii 如 'A' 转化后就是 65  。
      

  5.   

    强制转换成int是打印该字符相对应的整数,
    直接打印是打印该字符。
    弄不准要接受什么类型的参数的时候,看API。
      

  6.   

    做数学运算的时候当然是会自动提升为intl类型的,
    但是如果字符串用“+”,这个表示字符串的链接,
    会默认调用toString()方法,然后字符串连接。
      

  7.   

    System.out.println(a+b); a与b类型不同;会进行转换的;
      

  8.   

    根据一楼的回答 是不是逻辑操作符不算运算符 也就是运用逻辑操作符时不算运算? 所以c<128 中c不会自动提升为int型?++递增符也不是?
      

  9.   

    1,Character.isLowerCase(c)这个方法接受的c是char类型的参数2,System.out.println("value:"+(int)c+"character:"+c);这句中 (int)c 就是把为了把c以int类型输出
      
    当char型进行运算的时候可以直接相加.这个时候是以它们的ASC码相加.但是输出的时候,如果没有转化,就是以变量的类型来输出,是char输出字符,是int则输出整形数.
      

  10.   

    char 类型。
    (int)c int输出,否则char输出。