对于 Scanner类 中 next 和 nextLine 方法的区别
首先,我们要先明白为什么要采用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);}
}
运行结果:
总结:
- next() 对于录入的字符串碰到空格就会停止录入。
- 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 方法的区别相关推荐
- java 中 next() 与 nextLine() 方法的区别
在说它俩的不同之处前,先说说它俩的相同之处: next() 和 nextLine() 读取的结果都是 String 类型,返回 string 类型 java 中 Scanner 类中的 next() ...
- 关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法...
Integer类中的. 关于parseInt()方法的API文档. 返回的是int类型的 关于valueOf()方法的API文档 返回的是Integer类型的. 关于intValue()方法的API ...
- java中Scanner类中 next()与nextLine()的区别
问题:提示用户输入一个英文字符串或者要解密的字符串,然后通过扫描仪获取用户输入的字符串,经过加密或者解密后,把字符串输出. import java.util.Scanner;public class ...
- scanner类 区分next()和nextLine()方法
import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) {Scanner s ...
- Scanner类的next()和nextLine()
用户交互 scanner类来获取用户的输入 Scanner类的next()和nextLine() 方法获取输入的字符串,在读取前我们一般使用hasNext()与hasnextLine()判断是否还有输 ...
- Scanner类中的next()和nextLine()方法
当我们从键盘输入时,通常会使用Scanner文本扫描器,当输入需要判断空格,tab键等无效字符时,next和nextLine()有不同的效果. next()一定要读取到有效字符后才可以结束输入,对输入 ...
- (JAVA学习笔记) Scanner类中next方法和nextline方法的区别
next(): 1.一定要读取到有效字符后才可以结束输入. 2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或结束符. *4. ...
- springboot在工具类中添加service的方法,显示为空的解决方案
springboot在工具类中添加service的方法,显示为空的解决方案 参考文章: (1)springboot在工具类中添加service的方法,显示为空的解决方案 (2)https://www. ...
- Object类中的两个方法——wait和notify使用总结
Object类中的wait .和 notify方法是用来处理线程的方法,既然定义在Object类中,两个方法的重要程度可见一斑: 两个方法的使用上都很复杂:通过阅读API获得更多对方法的理解: The ...
最新文章
- 汤家凤高等数学基础手写笔记-曲线与曲面积分
- 测试功能范围_我们该如何制定手机浏览器菜单改版测试范围呢?
- mfc读取txt文件并显示_Python入门丨文件读写
- 《Windows核心编程》の窗口过程的使用
- 微型计算机惠普1hm20av,微型计算机原理及应用(答案).doc
- mysql和sqlserver读写分离_C#简单构架之EF进行读写分离+多数据库Mysql/SqlServer
- 阿里推出“阿里云网盘”App;Linux 发布 29 周年​| 极客头条
- java 实体类返回大写_解决springboot bean中大写的字段返回变成小写的问题
- 部署hexo后github pages页面未更新或无法打开问题
- Scott Mitchell 的ASP.NET 2.0数据操作教程之九:跨页面的主/从报表
- ip纯真数据库查询国家省市名称
- 2018年苏大计算机考研872真题及解析
- json数组转json对象(利用map()函数)
- Java/JVM垃圾回收机制和算法总结
- 使用w查看系统负载 vmstat命令 top命令 sar命令 nload命令
- python symbols函数_Python应用 | 求解微积分!
- EventBus粘性事件
- 香港十大杰出炒黄金交易平台排名
- 英文WM 5.0、6.0 ROM汉化初级教程
- 【大学毕设全纪录】鸟类的声音识别·一
热门文章
- 基于MQTT协议的 org.eclipse.paho.client.mqttv3 源码学习(二)
- 抖音直播带货怎么去做?学会这些套路你也能月入10W+丨国仁网络资讯
- 从零开始学习cocoStudio(1)--cocoStudio是什么?
- Entity Framework走马观花之把握全局
- 【前端实例代码】使用 HTML 和 CSS 如何实现惊人的透明登录框页面毛玻璃效果| 前端开发 网页制作 基础入门教程
- eclipse安装spring tools4
- VS工程设置_调试报错_无法解析的外部符号LINK2019
- 解密2008北京奥 运会开幕式高科技
- 逻辑为基、数企赋能(NO.18):矩形图评估与决策
- C++核心准则C.43:保证(值类型)可拷贝类有默认构造函数