首先,我们要先明白为什么要采用next与nextLine方法从键盘输入数值呢?其次在分别辨析二者区别。

我们经常接收用户输入的值都是有给定具体的类型的,但不妨有那么一些人就是反着做,导致的结果如下图:

【代码】

import java.util.Scanner;public class Scanner1 {public static void main(String[] args) {Scanner input = new Scanner(System.in);//input这个是一次定义,到处使用System.out.println("请用户输入一个值:");int a = input.nextInt();System.out.println(a);}
}

运行结果:

看如上结果知,要求输入整数,而用户偏偏输入不是整数的其他类型。为了避免这样的情况,Scanner包就有next 和 nextLine 方法。

接下来就让我带领大家走进二者的区别。

1. 调用scanner的next方法:

  • 只有检测到有有效字符输入时执行回车才有效,否则回车在控制台只起到换行的作用,不实际录入数据。
import java.util.Scanner;public class Scanner1 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请用户输入一个值1:");String a = input.next();System.out.println(a);System.out.println("请用户输入一个值2:");String b = input.next();System.out.println(b);}
}

运行结果:

  • 两个输入值时,若录入字符后 再输入空格 再录入一段字符后回车,直接将该字符串解析为以空格字符做间隔的两次录入数据,并且不录入空格,直接在控制台打印两个字符串。

  • 一个输入参数则next()方法碰到空格就会停止录入。
import java.util.Scanner;public class Scanner1 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请用户输入一个值1:");String a = input.next();System.out.println(a);}
}

运行结果:

(总之,next方法不接收任何空格字符)

2. 调用scanner的nextLine方法:

  • 若输入回车直接在控制台打印空数据,并且它能检测并打印空格符。
import java.util.Scanner;public class Scanner1 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请用户输入一个值1:");String a = input.nextLine();System.out.println(a);System.out.println("请用户输入一个值2:");String b = input.nextLine();System.out.println(b);}
}

运行结果:

总结:

  1. next() 对于录入的字符串碰到空格就会停止录入。
  2. nextLine()会把整行字符串全部录入。

补充:判断用户输入类型

文章开头可知,如果用户输入的类型不符合代码的要求,控制台就会报错致使代码出错;其次我们写着代码都是交付标准,什么意思呢?

交付标准就是指不能因为输入类型的出错而导致代码崩溃的现象,因此为了解决这种问题,此时引入 如何判断用户输入类型 。

直白点说就是多了选择语句来判断。

下面这张图就是Scanner类的boolean方法:

【代码】

public static void main(String[] args) {Scanner input = new Scanner(System.in);//交付标准System.out.println("请用户输入一个数:");//在接收输入之前判断输入的类型是否为intif(input.hasNextInt()) {int b = input.nextInt();System.out.println("你输入的值是:" + b);}else {System.out.println("用户输入错误");}}
}

运行结果:

请用户输入一个数:
Victor
用户输入错误

对于 Scanner类 中 next 和 nextLine 方法的区别相关推荐

  1. java 中 next() 与 nextLine() 方法的区别

    在说它俩的不同之处前,先说说它俩的相同之处: next() 和 nextLine() 读取的结果都是 String 类型,返回 string 类型 java 中 Scanner 类中的 next() ...

  2. 关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法...

    Integer类中的. 关于parseInt()方法的API文档.  返回的是int类型的 关于valueOf()方法的API文档 返回的是Integer类型的. 关于intValue()方法的API ...

  3. java中Scanner类中 next()与nextLine()的区别

    问题:提示用户输入一个英文字符串或者要解密的字符串,然后通过扫描仪获取用户输入的字符串,经过加密或者解密后,把字符串输出. import java.util.Scanner;public class ...

  4. scanner类 区分next()和nextLine()方法

    import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) {Scanner s ...

  5. Scanner类的next()和nextLine()

    用户交互 scanner类来获取用户的输入 Scanner类的next()和nextLine() 方法获取输入的字符串,在读取前我们一般使用hasNext()与hasnextLine()判断是否还有输 ...

  6. Scanner类中的next()和nextLine()方法

    当我们从键盘输入时,通常会使用Scanner文本扫描器,当输入需要判断空格,tab键等无效字符时,next和nextLine()有不同的效果. next()一定要读取到有效字符后才可以结束输入,对输入 ...

  7. (JAVA学习笔记) Scanner类中next方法和nextline方法的区别

    next(): 1.一定要读取到有效字符后才可以结束输入. 2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或结束符. *4. ...

  8. springboot在工具类中添加service的方法,显示为空的解决方案

    springboot在工具类中添加service的方法,显示为空的解决方案 参考文章: (1)springboot在工具类中添加service的方法,显示为空的解决方案 (2)https://www. ...

  9. Object类中的两个方法——wait和notify使用总结

    Object类中的wait .和 notify方法是用来处理线程的方法,既然定义在Object类中,两个方法的重要程度可见一斑: 两个方法的使用上都很复杂:通过阅读API获得更多对方法的理解: The ...

最新文章

  1. 汤家凤高等数学基础手写笔记-曲线与曲面积分
  2. 测试功能范围_我们该如何制定手机浏览器菜单改版测试范围呢?
  3. mfc读取txt文件并显示_Python入门丨文件读写
  4. 《Windows核心编程》の窗口过程的使用
  5. 微型计算机惠普1hm20av,微型计算机原理及应用(答案).doc
  6. mysql和sqlserver读写分离_C#简单构架之EF进行读写分离+多数据库Mysql/SqlServer
  7. 阿里推出“阿里云网盘”App;Linux 发布 29 周年​| 极客头条
  8. java 实体类返回大写_解决springboot bean中大写的字段返回变成小写的问题
  9. 部署hexo后github pages页面未更新或无法打开问题
  10. Scott Mitchell 的ASP.NET 2.0数据操作教程之九:跨页面的主/从报表
  11. ip纯真数据库查询国家省市名称
  12. 2018年苏大计算机考研872真题及解析
  13. json数组转json对象(利用map()函数)
  14. Java/JVM垃圾回收机制和算法总结
  15. 使用w查看系统负载 vmstat命令 top命令 sar命令 nload命令
  16. python symbols函数_Python应用 | 求解微积分!
  17. EventBus粘性事件
  18. 香港十大杰出炒黄金交易平台排名
  19. 英文WM 5.0、6.0 ROM汉化初级教程
  20. 【大学毕设全纪录】鸟类的声音识别·一

热门文章

  1. 基于MQTT协议的 org.eclipse.paho.client.mqttv3 源码学习(二)
  2. 抖音直播带货怎么去做?学会这些套路你也能月入10W+丨国仁网络资讯
  3. 从零开始学习cocoStudio(1)--cocoStudio是什么?
  4. Entity Framework走马观花之把握全局
  5. 【前端实例代码】使用 HTML 和 CSS 如何实现惊人的透明登录框页面毛玻璃效果| 前端开发 网页制作 基础入门教程
  6. eclipse安装spring tools4
  7. VS工程设置_调试报错_无法解析的外部符号LINK2019
  8. 解密2008北京奥 运会开幕式高科技
  9. 逻辑为基、数企赋能(NO.18):矩形图评估与决策
  10. C++核心准则C.43:保证(值类型)可拷贝类有默认构造函数