为了账号安全,请及时绑定邮箱和手机立即绑定

Java 中的 System.out.write()-不打印整数值的最低有效值

Java 中的 System.out.write()-不打印整数值的最低有效值

拉风的咖菲猫 2021-06-10 14:27:04
这是我的代码:class writedemo {    public static void main(String args[]){      int b;      b=1;      System.out.write(b);      System.out.write('\n');        }}我得到的输出是“apl 功能四问题”字符(U+2370)。但是这段代码有效:class writedemo{    public static void main(String args[]){      int b;      b='A';      System.out.write(b);      System.out.write('\n');        }}它打印字符'A'。有人可以帮帮我吗?我错过了什么吗?
查看完整描述

3 回答

?
森栏

TA贡献1810条经验 获得超5个赞

System.out.write() 存储并打印 ASCII 值。您可以使用 System.out.print() 来显示您的整数值。两者的区别如下:


System.out.write(65);  //will print ASCII value of 65 which is A;

System.out.print(65); // will print just 65


查看完整回答
反对 回复 2021-06-30
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

正如 Maantje 在他的回答中提到的。

write(int) 将参数解释为要打印的单个字符,而 print(int) 将整数转换为字符串。write(49) 打印“1”,而 print(49) 打印“49”。


查看完整回答
反对 回复 2021-06-30
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

如果将字符值传递'A'int,则会保存数字ASCII值。根据 ASCII 表,字形'A'被转换65为十进制值。这里是方法之间的差异System.out::print,并System.out::write可能会造成混乱:

  • System.out.println(b);打印65,因为在System.out::print(int x)x被理解为一个整数:

    打印一个整数,然后终止该行。

  • System.out.write(b);打印A,因为在System.out::write(int b)b被理解为一个字节:

    将指定的字节写入此流。如果字节是换行符并且启用了自动刷新,则将调用刷新方法。

    请注意,字节是按给定的方式写入的;要编写将根据平台的默认字符编码进行翻译的字符,请使用 print(char) 或 println(char) 方法。


查看完整回答
反对 回复 2021-06-30
  • 3 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信