赞
踩
最近在 看Scanner相关的知识,由于涉及到Enter键的问题,于是网上查资料,突然看到一篇博客关于Java中Enter键的疑问,由于里面是大学课本中的知识,所以里面对Enter键的介绍应该是权威性的东西。即
看了博主的博客后,于是就想着研究下博主的疑问。通过研究发现IntelliJ IDEA(版本:IntelliJ IDEA 2021.3.3 (Ultimate Edition))打印的结果有问题,研究问题:Enter键在java中是几个字符,如何打印Enter键。
小编使用的IntelliJ IDEA是破解版,只为学习使用。
博主书本中的代码图片:
研究使用代码:
package com.demo; import java.io.BufferedInputStream; import java.io.IOException; /** * https://blog.csdn.net/weixin_47096378/article/details/119513343 */ public class app10_4 { public static void main(String[] args) { try { byte[] b = new byte[128]; //设置缓冲区 //System.out.println(System.in.getClass()); System.out.print("please input:"); int count = System.in.read(b); System.out.println("your input:"); for (int i = 0; i < count; i++) { System.out.print(b[i] + " "); } System.out.println(); for (int i = 0; i < count -2; i++) System.out.print((char) b[i] + " "); System.out.println(); System.out.println("input num:" + count); //Class InClass = System.in.getClass(); //Class OutClass = System.out.getClass(); //System.out.println("in class:" + InClass.toString()); //System.out.println("out class:" + OutClass.toString()); } catch (IOException e) { } } }
不同编辑器打印结果
注:abc后面有Enter键
Eclipse和CMD打印的结果都是5,IDEA打印的却是4(有点坑人啊)
不清楚IDEA是不是有bug:
第一种可能:IDEA键盘输入流相关的,在软件内部设计如此
第二种可能:IDEA键盘输入流相关的,可以在软件设置中进行设置,比如把Enter键当成一个字符或者两个字符的设置
第四种可能:我用的是破解版的IDEA,是破解版导致的这个问题
希望IDEA能够尽快解决这个问题,不然容易误导人
另外:网上有些说法感觉不太正确(可能只是编写时不注意)。下面试小编的理解:
Enter键:\r\n。网上有说是 \n\r的
Windows系统中文件行的末尾(如果加了Enter键),行尾是:\r\n。(有的博客说的是 \n\r,可能写的时候不注意,容易误导人)
平时闲聊的时候,大家说的敲回车,是指的敲Enter键,回车也是指Enter键。如果涉及到程序问题,Enter键就是Enter键,只说回车也是指Enter键(回车+换行)
代码
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; /** * https://blog.csdn.net/weixin_47096378/article/details/119513343 */ public class app10_5 { public static void main(String[] args) { //try(FileInputStream fr = new FileInputStream("D:/Myfile.txt");) try(FileReader fr = new FileReader("D:/Myfile.txt");) { //byte [] c = new byte[250]; char [] c = new char[250]; int num =fr.read(c);//this read methods return the number of characters read String str = new String(c,0,num); System.out.println("文本中的字符有"+num+"个"); System.out.println("文本中的内容是:"+str); } catch (FileNotFoundException e) { System.out.println("file not found"); } catch (IOException e) { System.out.println("IOException"); } } }
参考:
关于Java中Enter键的疑问
此问题已经发过一贴,但没有清楚,关于System.in.read()方法是抽象方法
InputStream read()方法详解
向InputStream的开头和结尾添加字符
System.in.read()的用法
Java中的回车(\r)和换行(\n)
Java开发之回车换行符,我跳过的坑你跳过吗?–中享思途
小编写这个博客的时候,差点把锅煮坏,早上煮的鸡蛋,一直煮了1个小时,厨房离我坐着写博客的位置只有3米远,能听到锅里的嘟嘟的声音,眼睛还能看到锅,就这么眼睁睁的煮着。竟然忘了煮鸡蛋这事,幸亏添的水多。提醒大家在写东西或者玩游戏的时候千万不要煮东西,小心火炉,煮东西的时候旁边要一直看着,注意安全。
2022.5.8 10.03 sh ylxy 50219388
java的回车语句_【转载】Java中的回车换行符/n /r /t
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。