关于Java中Enter键的研究(IntelliJ IDEA 2021.3.3有bug这件事)

  最近在 看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) {
        }
    }
}

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

注: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");
        }
    }
}

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

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"localized intellij idea 2021.3.3 is available" 是说本地化的IntelliJ IDEA 2021.3.3 可用。 IntelliJ IDEA是一款著名的Java集成开发环境,能够提供丰富的功能和工具来帮助开发人员编写高质量的代码。该软件通常会根据用户的地理位置和语言设置进行本地化,以便更好地满足用户的需求。此处提到的"localized intellij idea 2021.3.3 is available" 意味着该软件的本地化版本已经发布,用户可以使用其来进行开发工作。 本地化版本的IntelliJ IDEA意味着软件界面和功能在用户所使用的地理区域进行了适配和优化。例如,菜单、按钮、对话框等界面元素将以用户熟悉的语言显示,并根据当地的开发实践和规范进行调整。此外,本地化还可能涉及到与特定地区相关的功能或工具的添加或修改,以满足用户的特定需求。 对于开发人员来说,使用本地化的IntelliJ IDEA有许多好处。首先,界面和操作会更加直观和友好,降低了学习和使用成本。其次,本地化能够提供更准确的错误提示、代码自动补全和建议,使开发工作更加高效和方便。此外,本地化界面还能够传达开发人员所处文化背景的特点和风格,增加用户与软件之间的亲和力。 因此,"localized intellij idea 2021.3.3 is available" 的消息表明,开发人员现在可以使用对其地理位置进行本地化的IntelliJ IDEA 2021.3.3版本来进行Java开发,并享受到更优质的开发体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值