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

这是我的代码:


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'。有人可以帮帮我吗?我错过了什么吗?


拉风的咖菲猫
浏览 178回答 3
3回答

森栏

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

慕工程0101907

正如 Maantje 在他的回答中提到的。write(int) 将参数解释为要打印的单个字符,而 print(int) 将整数转换为字符串。write(49) 打印“1”,而 print(49) 打印“49”。

一只斗牛犬

如果将字符值传递'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) 方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java