所以我刚刚开始阅读“Java In A Nutshell”,并在第一章中指出:
“要在Java程序中包含字符文字,只需将其放在单引号之间” 即。
char c = 'A';
这到底是做什么的?我认为char只接受0到65,535的值。我不明白你怎么能给它分配'A'?
您还可以将“B”分配给int吗?
int a = 'B'
'a'的输出是66.你在哪里/为什么要使用上面的^操作?
如果这是一个愚蠢的问题,我道歉。
我的一生都是谎言。
答案 0 :(得分:10)
char
实际上是一个整数类型。它存储相关字符的16位Unicode整数值。
您可以查看http://asciitable.com之类的内容,查看不同字符的不同值。
答案 1 :(得分:2)
如果查看ASCII图表,字符“A”的值为41十六进制或65十进制。使用'
字符括起单个字符使其成为字符文字。使用双引号("
)会使它成为字符串文字。
分配char someChar = 'A';
与说char someChar = 65;
完全相同。
至于为什么,考虑一下你是否只想查看一个String是否包含一个十进制数字(并且你没有方便的功能来执行此操作)。你可以使用类似的东西:
bool isDecimal = true;
for (int i = 0; i < decString.length(); i++) {
char theChar = decString.charAt(i);
if (theChar < '0' || theChar > '9') {
isDecimal = false;
break;
}
}
答案 2 :(得分:2)
在Java中,char字面值表示UTF-16(字符编码模式)代码单元。你从UTF-16得到的是整数值(以及它们在内存中保存的方式)与相应字符(单位代码的图形表示)之间的映射。
您可以将字符括在单引号中 - 这样您就不需要记住您使用的字符的UTF-16值。您仍然可以从字符类型中获取整数值,并将其置于例如int类型中(但通常不是简而言之,它们都使用16位,但短值是-32768到32767,char值是0到65535左右)