这个Java println调用中的char转换是做什么的?

问题描述:

我是新来的编程在Java中,我不明白一个println声明。我可以运行它,但无法理解它的功能。任何人都可以解释这是什么吗?这个Java println调用中的char转换是做什么的?

System.out.println((char) ('a' + 4));

+8

请阅读ASCII。 http://www.asciitable.com答案是101 – StackFlowed 2014-10-07 17:30:27

首先一个ASCII值被添加到值4和字符相应的值101是printed..it是“e'.You可以指ASCII表

asciia97 so 97+4=101101这就是ascii字母值e

System.out.println((char) ('a' + 4)); 

所以上面的sop会打印e

只需打印出字母e。 @wrongAnswer引用了ASCII字符代码,这是一个将唯一ID分配给字符的编号系统。看看这个例子:http://www.asciitable.com/

如果您看一下表格中小写字母的排列方式,您会看到字母a在97,b在98,c在99等等。上面的代码正在做什么,我们正在找到什么是a的ASCII码,然后加4,然后再回到char。因此,这实际上做的是将97然后与4相加,产生101。如果您查阅表格,101实际上是e,所以在铸造101char之后的输出是e

  1. 'a'是一个char文字;
  2. char是Java中的整数数值类型,就像int;
  3. +两个数值之间发生装置此外;
  4. (char)表示转换成转换为char类型;
  5. 一个char,打印时,呈现为Unicode的编码点,那么表示。
+2

欣赏指出'char'被认为是一种数字类型。人们通常不会在解释中强调这一点,然后当“a”+“b”不返回“ab”时会感到困惑。 – Compass 2014-10-07 17:35:06

允许打破这种分解成离散的语句:

char a = 'a'; // the character a 
int aPlusFour = a + 4; //characters are really an integer value for the ASCII code, so we can add four 
char aPlusFourChar = ((char) aPlusfour); //cast our integer back to a char 
System.out.println(aPlusFourChar); //this should print the character e 

  1. '一个' == 97
  2. 97 + 4 == 101
  3. (炭)101 == 'E'
  4. System.out.println('e'+“”); //打印'e'