Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何知道char类型变量打印的是字母还是数字?_Java_String_Char - Fatal编程技术网

Java 如何知道char类型变量打印的是字母还是数字?

Java 如何知道char类型变量打印的是字母还是数字?,java,string,char,Java,String,Char,我目前正在学习java。在一些实际问题中,当打印char变量时,它会打印一个整数。其他时候,它以Unicode格式打印由整数表示的实际字符 我目前的“理论”是,无论何时你与数字交互(例如,在字符中添加一个数字),它都会打印数字。然而,也有例外 char c = 97; System.out.println(c); //Prints a (corresponding to lowercase a on ASCII chart) char v = 'H'; Sust

我目前正在学习java。在一些实际问题中,当打印char变量时,它会打印一个整数。其他时候,它以Unicode格式打印由整数表示的实际字符

我目前的“理论”是,无论何时你与数字交互(例如,在字符中添加一个数字),它都会打印数字。然而,也有例外

    char c = 97;
    System.out.println(c); //Prints a (corresponding to lowercase a on ASCII chart)

    char v = 'H';
    Sustem.out.println(v + 5); // Prints 77. Why doesn't it print the string "H5" 

我希望​H5的输出,但实际输出为77。

H为72,ASCII十进制格式。加5=77。。为什么它打印77而不是
M
,是因为它在自动类型推断中找到了两者之间的公共类型。5是一个整数,因此字符首先转换为int,然后进行加法,结果是一个整数。想想为什么int+a浮点是一个浮点。在这种情况下,为什么char var='H';字符条='A';系统输出打印项次(bar+var)//打印137我假设它们之间的共同类型是图表。这里的问题是,算术表达式中的所有整数类型至少提升为
int
,结果总是
int
long
,而不是
char
short
System.out.println(v+“5”)//将打印H5以便直接回答问题,将
char
传递给
println
始终显示相应的图形字符。但是,如果您对
println
的参数是一个涉及
char
s的算术表达式,那么实际上您传递的是
int
,而不是
char
,因此您得到了该
int
的十进制表示形式。