IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> [Java]next()和nextLine()的区别与使用 -> 正文阅读

[Java知识库][Java]next()和nextLine()的区别与使用

next()和nextLine()

Hello!
今天给大家分享一个知识点哈.

还记得当时学java的时候我曾纠结于nextLine和next的使用上(/菜),现在来给大家简单介绍一下他们的区别和使用。
?

简单介绍一下

next()和next line ( ) 都是Scanner类中的方法,而且作用都是获取输入的String类型的内容。

具体代码实现:

Scanner scanner=new Scanner(System.in);

String string=scanner.next();
String string1=scanner.nextLine();

?
那么重点来了,那他们又有什么区别呢?这就要先了解他们的处理机制了。
?

1,next

next():
它会自动地消除有效字符之前的空格,只返回输入的字符,不会得到带空格的字符串。

也就是说如果输入了一串字符,到了有空格的时候就会停止录入,只录入空格前面的东西,空格后面的东西(包括分隔的空格都会保留在缓存区域)

除了空格以外,Tab键和Enter键都被视为分隔符(结束符)。

?

2,nextLine()

nextLine():

它返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。

也就是说输入一串字符,它就可以接受所有字符包括空格,但是遇到回车Enter就会停止录入,只录入前面的东西。
?
?

3,搭配使用

搭配使用:他们也是可以搭配使用的哦。

它们可以单独使用,也可以搭配使用,搭配使用可以处理很多的录入情况。

情况1

如果想录入一个字符串,但是中间有一个空格间隔。

例如:如果想录入:你好 再见。

具体代码实现:

 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //如果想录入:你好 再见
        String string = scanner.next();
        String string1 = scanner.next();
        System.out.println(string);
        System.out.println(string1);
     //如果没有第二个next(),那么只能输出‘你好’,没有‘再见’
     //第一个next()录入‘你好’,然后遇到空格停止,将空格以及后面的‘再见’保存到缓存区,第二个next()则直接跳过空格,录入‘再见’。
     
     //也可以直接用nextLine
        String string2 = scanner.nextLine();
        System.out.println(string2);
    }

?

情况2

如果想录入一个字符串,但是中间有一个回车Enter。

例如:如果想录入:
你好
再见

具体代码实现:

        String string = scanner.next();
        String string1 = scanner.next();
        System.out.println(string);
        System.out.println(string1);
//与上面一样,也是用两个next()。第一个next()录入你好,将回车和‘再见’保存到缓冲区,第二个next()跳过回车,直接录入再见。

//也可以用nextLine()和nextLine()搭配使用
        String string2 = scanner.nextLine();
        String string3 = scanner.nextLine();

        System.out.println(string2);
        System.out.println(string3);
//第一个nextLine()录入回车之前的‘你好’,遇到回车结束,‘再见’保存到缓冲区,第二个nextLine()直接录入‘再见’。

//也可以用nextLine()和next()搭配使用
        String string4 = scanner.nextLine();
        String string5 = scanner.next();

        System.out.println(string4);
        System.out.println(string5);
//同样的道理,第一个nextLine()录入回车之前的‘你好’,遇到回车结束,‘再见’保存到缓冲区,第二个next()直接录入‘再见’。

?

4,特别注意

特别注意:!!!

在录入中间有回车的字符串的时候,不要使用next()和nextLine()的配合,next会将回车之前的字符串录入,将回车以及后面的内容留在缓存区,next()直接去缓存区录入数据,结果上来就碰上了回车,(还没有开始就结束了),那么缓存区回车后面的内容自然就无法接受了

解决方法:可以在next()和nextLine()中间再加一个nextLine(),让新加的这个nextLine()将回车吸收,结束,然后最后的nextLine()就可以直接录入数据了。

代码实现:

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        String string1= scanner.next();
        String string2= scanner.nextLine();
        String string3= scanner.nextLine();

        System.out.println(string1);
        System.out.println(string3);

    }
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 10:43:56  更:2021-09-10 10:44:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:57:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码