当前位置:   article > 正文

关于Java中Enter键的研究(IntelliJ IDEA 2021.3.3有bug这件事)_java回车键对应字符

java回车键对应字符

  最近在 看Scanner相关的知识,由于涉及到Enter键的问题,于是网上查资料,突然看到一篇博客关于Java中Enter键的疑问,由于里面是大学课本中的知识,所以里面对Enter键的介绍应该是权威性的东西。即

Enter键当做两个字符:一个是ASCII码值为13的回车符(Carriage Return) “\r”;另一个是ASCII码值为10的换行符 “\n”

请添加图片描述
  看了博主的博客后,于是就想着研究下博主的疑问。通过研究发现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) {
        }
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

不同编辑器打印结果
在这里插入图片描述

注:abc后面有Enter键
Eclipse和CMD打印的结果都是5,IDEA打印的却是4(有点坑人啊)
不清楚IDEA是不是有bug:
第一种可能:IDEA键盘输入流相关的,在软件内部设计如此
第二种可能:IDEA键盘输入流相关的,可以在软件设置中进行设置,比如把Enter键当成一个字符或者两个字符的设置

第三种可能:这个涉及到Enter键相关的是IDEA自身的bug

第四种可能:我用的是破解版的IDEA,是破解版导致的这个问题

这几种可能,第三种小编认为可能性更大。由于时间关系,不再研究其他几种可能了,就认为是IDEA的bug吧,这个确实很坑,容易误导人。

希望IDEA能够尽快解决这个问题,不然容易误导人
另外:网上有些说法感觉不太正确(可能只是编写时不注意)。下面试小编的理解:
Enter键:\r\n。网上有说是 \n\r的

ASCII码值:\n是10,\r是13

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");
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

参考:
关于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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/987784
推荐阅读
相关标签
  

闽ICP备14008679号