无法理解程序的输出

时间:2015-11-01 14:28:41

标签: java

import java.util.Scanner;
public class asdf
{
    public static void main(){
     String temp = "165";
     int ch = temp.charAt(0);
     int ch1 = temp.charAt(1);
     int ch2 = temp.charAt(2);
     System.out.println(ch);
     System.out.println(ch1);
     System.out.println(ch2);
    }

}
Output:
49
54
53

我无法理解输出。它是隐式转换,根据哪个字符转换为数字。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:1)

正在打印数字的ASCII值。 1,6,5。

请注意,ASCII值为0.因此,49是字符1的ASCII值,依此类推。

看看这里:http://www.asciitable.com/

尝试此操作以获取打印的实际字符而不是ASCII值:

(Customer)first.next;

答案 1 :(得分:0)

charint的子集。它包含0到2 ^ 16-1的值。每个值对应一个字符。

当您将char分配给int变量并打印该变量时,您会看到与该字符对应的int值。

'1' corresponds with 49
'6' corresponds with 54
'5' corresponds with 53

答案 2 :(得分:0)

它给出了ASCII值,您可以将其转换为char以获得预期的答案

    System.out.println((char) ch);
    System.out.println((char) ch1);
    System.out.println((char) ch2);