好的,所以我有以下代码。我知道在char中创建新行没有任何意义,但是我想知道的是为什么它以10-19而不是正常的1-10进行打印。有人可以给我答案吗?
public class Demo {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println('\n' + i);
}
}
}
的ASCII值为\n
10。该+
运算符被解释为两个数值之间的“加”操作数,而不是两个字符串之间的“附加”操作。这是因为您使用的是单引号,而不是双引号。单引号表示char
。
char
在Java中,可以将A视为实际数字。您可以在此图表上检查所有ASCII值。
JLS 4.10.1-如果您要研究深入的规范,则可以很清楚地显示原始类型之间char
的子类型化int
。还有JLS 5.1-转换类型,以获取有关转换的详细信息。
根据Tom Blodget在下面的评论,似乎Java实际上将UTF-16用于String文字,如String文档和JLS 3中所述。尽管我已经成功使用了ASCII值很多年,并且从未遇到任何错误或问题,但这可能是一个重要的事实。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句