详解Java中方法next()和nextLine()的区别与易错点
1、基本语法
1.1基本使用方法
本篇博客重点nextLine()会读取换行('\r'),但是不会进行输出。
Java中Scanner类中的方法next()和nextLine()都是吸取输入台输入的字符,区别:
- next()不会吸取字符前/后的空格/Tab键,只吸取字符,开始吸取字符(字符前后不算)直到遇到空格/Tab键/回车截止吸取;
- nextLine()吸取字符前后的空格/Tab键,回车键截止。
输入两行字符串:
我爱学JAVA 我真的很爱爱学JAVA
我真的很爱很爱学JAVA
期望输出结果:
我爱学JAVA 我真的很爱爱学JAVA
我真的很爱很爱学JAVA
package scanner; import java.util.Scanner; public class Sun_01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str1 = scanner.nextLine(); String str=scanner.next(); System.out.println(str1); System.out.println(str); scanner.close(); } }
没错,和我们期望输出结果一样。
2、nextLine()易错点
2.1 nextLine()使用错误案例
我们第一行使用next()进行读入,第二行使用nextLine()进行读入两行字符串
输入两行字符串:
我爱学JAVA
我爱学JAVA 我真的很爱爱学JAVA
期望输出结果:
我爱学JAVA
我爱学JAVA 我真的很爱爱学JAVA
package scanner; import java.util.Scanner; public class Sun_01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.next(); String str2=scanner.nextLine(); System.out.println(str); System.out.println(str2); scanner.close(); } }
会发现,输入台输入“我爱学JAVA"后接着输出了,与我们期望输出结果不一样。
到底是因为什么呢?
Scanner是一个扫描器,我们录取到键盘的数据,先存到缓存区等待读取,它判断读取结束的标示是 空白符;比如空格,回车,tab 等等。
next()方法读取到空白符就结束,也就是读取完“我爱学JAVA”;
nextLine()只读取到回车结束也就是“\r”;
通俗解释为:因为next()读取到空白符前的数据时结束了,然后把回车“\r”留给了nextLine();所以上面nextLine()没有输出,不输出不代表没数据,是接到了空(回车“/r”)的数据。
正确的解决方式:
package scanner; import java.util.Scanner; public class Sun_01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.next(); String str1=scanner.nextLine(); String str2=scanner.nextLine(); System.out.println(str); System.out.println(str2); scanner.close(); } }
解决方式为多用一个nextLine()将换行读入。
到此这篇关于详解Java中方法next()和nextLine()的区别与易错点的文章就介绍到这了,更多相关Java next()和nextLine()内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot中整合MyBatis-Plus-Join使用联表查询的实现
本文主要介绍了SpringBoot中整合MyBatis-Plus-Join使用联表查询的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-03-03spring cloud中微服务之间的调用以及eureka的自我保护机制详解
这篇文章主要介绍了spring cloud中微服务之间的调用以及eureka的自我保护机制详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-07-07Spring Boot 2结合Spring security + JWT实现微信小程序登录
这篇文章主要介绍了Spring Boot 2结合Spring security + JWT实现微信小程序登录,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-01-01玩转spring boot 结合jQuery和AngularJs(3)
玩转spring boot,这篇文章主要介绍了结合jQuery和AngularJs,玩转spring boot,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-01-01详解Java8新特性之interface中的static方法和default方法
这篇文章主要介绍了Java8新特性之interface中的static方法和default方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下2018-08-08Java方法递归的形式和常见递归算法(方法递归结合File类查找文件)
方法递归方法直接调用自己或者间接调用自己的形式称为方法递归( recursion),递归做为一种算法在程序设计语言中广泛应用,这篇文章主要介绍了Java方法递归的形式和常见递归算法-方法递归结合File类查找文件,需要的朋友可以参考下2023-02-02
最新评论