所以我刚开始阅读“Java In A Nutshell”,在第一章中它指出:
“要在 Java 程序中包含字符文字,只需将其放在单引号之间”即
char c = 'A';
这到底是做什么的^?我认为 char 只接受 0 - 65,535 的值。我不明白您如何将“A”分配给它?
您还可以将“B”分配给 int?
int a = 'B'
'a' 的输出是 66。在哪里/为什么要使用上述 ^ 操作?
如果这是一个愚蠢的问题,我深表歉意。
我的整个人生都是一个谎言。
所以我刚开始阅读“Java In A Nutshell”,在第一章中它指出:
“要在 Java 程序中包含字符文字,只需将其放在单引号之间”即
char c = 'A';
这到底是做什么的^?我认为 char 只接受 0 - 65,535 的值。我不明白您如何将“A”分配给它?
您还可以将“B”分配给 int?
int a = 'B'
'a' 的输出是 66。在哪里/为什么要使用上述 ^ 操作?
如果这是一个愚蠢的问题,我深表歉意。
我的整个人生都是一个谎言。
char
实际上是一个整数类型。它存储相关字符的 16 位 Unicode 整数值。
您可以查看http://asciitable.com之类的内容,以查看不同字符的不同值。
如果您查看 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;
}
}
在 Java 中,字符文字表示 UTF-16(字符编码模式)代码单元。您从 UTF-16 得到的是整数值(以及它们在内存中保存的方式)与相应字符(单位代码的图形表示)之间的映射。
您可以将字符括在单引号中 - 这样您就不需要记住您使用的字符的 UTF-16 值。您仍然可以从字符类型中获取整数值并将 if 例如放入 int 类型(但通常不是简而言之,它们都使用 16 位,但短值从 -32768 到 32767,char 值从 0 到 65535 左右) .