java - write()方法如何输出一个字符

标签 java input

write()方法的一般形式

void write(int value)

它接受一个 int 值作为参数,但打印出一个字符而不进行转换

int b;
b='A';
System.out.write(b);

谁能解释一下 write 方法是如何做到这一点的?

最佳答案

简而言之,因为字符只是数字,所以您可以在 intchar 之间进行转换,并且基本上不会发生任何变化(只要您不开始弄乱负数和数字)可能超出 char 数据类型的范围)。

更准确地说,字符就像“无符号短裤”,see this question ,显然你可以在“无符号短裤”和整数之间没有太多问题的情况下工作。

您可以执行以下操作:

char c = 'c';
int x = (int) c;
System.out.println(c);
System.out.println(x);
System.out.println((char) x);
c = (char) (c + 1);
System.out.println(c);

打印:

c
99
c
d

因此,当您调用 write('A') 时,它会自动将 'A' 转换为其相应的整数 65,其工作方式与您调用 相同写(65)

如果调用 write(65) 会发生什么?好吧,字节 65 被发送到控制台,这是一个文本控制台,它将字节解释为字符,因此它打印 65 作为其对应的字符“A”。

从根本上来说,“A”在二进制中就是 1000001,在十进制中是 65。您只需使用 65 调用 write,即 1000001,或者当解释为 ASCII table 的字符时为“A”。 .

关于java - write()方法如何输出一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23958271/

相关文章:

java - 调试: Using PENTAHO_JAVA_HOME

java - 在 Android 的 onSensorChanged() 中生成线程

java - 使用 GridBagLayout 时设置 JButton 大小

Java学习任务+解决方案(小项目)

c# - 表单打开时允许输入设置货币的文本框

c - 快速读取文件

java - 删除黑色背景时出现 OpenCV 3.2 错误

html - 属性inputmode : "obsolete since HTML5.2", 怎么替换呢?

c++ - 将任何库的 "isKeyPressed"函数转换为 "keyPressedOnce"?

c# - 我怎样才能 TryParse() 用户输入的字符串?