Java流程控制01-用户交互Scanner
★本篇笔记简介:1.scanner类概念——>2.next()与nextline()方法讲解——>3.对比区分(——>补充扩展)
目录
1.scanner类概念
java.util.Scanner 是 Java5 时出来的新一特征,我们可以借助 Scanner 类来获取用户的输入。
创建 Scanner 对象的基本语法:
Scanner s = new Scanner(System.in);
2.next()与nextline()方法讲解
示例演示,加深对Scanner类的理解。
预备知识:
①通过 Scanner 类的 next() 和 nextLine() 方法获取输入的字符串;
②读取前使用 hasNext 和 hasNextLine 判断是否还有输入的数据;
正式示例:
1.next方法
import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 从键盘接收数据 // next方式接收字符串 System.out.println("next方式接收:"); if (scanner.hasNext()) { // 判断是否还有输入 String str1 = scanner.next(); System.out.println("输入的数据为:" + str1); } scanner.close(); } }
执行以上程序输出结果为:
nextLine方式接收: liusu com 输入的数据为:liusu
如图:
ps: com怎么不见了?接下来先继续看nextLine。看完之后,再对它俩进行一下对比,看一下有何不同。
2.nextLine方法:
import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);// 从键盘接收数据 //nextLine方式接收字符串 System.out.println("nextLine方式接收:"); if (scanner.hasNextLine()) {// 判断是否还有输入 String str2 = scan.nextLine(); System.out.println("输入的数据为:" + str2); } scanner.close(); } }
执行以上程序输出结果为:
nextLine方式接收: liusu com 输入的数据为:liusu com
如图:
com成功输出!
3.next() 与 nextLine() 对比区分
next():
- 读取到有效字符后才能结束输入。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next() 不可得到带有空格的字符串。
nextLine():
- 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- nextLine()可以获得带有空格的字符串。
★补充:
输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextInt()或hasNextFloat方法进行验证,再使用 nextInt()或nextFloat() 来读取:
import java.util.Scanner; public class Demo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 从键盘接收数据 int i = 0; float f = 0.0f; System.out.print("输入整数:"); if (scanner.hasNextInt()) { // 判断输入的是否是整数 i = scanner.nextInt(); System.out.println("整数数据:" + i);//接收整数 } else { System.out.println("输入的不是整数!"); } System.out.print("输入浮点数:"); if (scanner.hasNextFloat()) { // 判断输入的是否是浮点数 f = scanner.nextFloat(); System.out.println("浮点数数据:" + f);// 接收浮点数 } else { System.out.println("输入的不是浮点数!"); } scanner.close(); } }
//执行以上程序输出结果为: 输入整数:10 整数数据:10 输入小数:1.5 小数数据:1.5
如图:
★ps:当然nextDouble()、nextLong()等这些也是有的,此处以nextInt()与nextFloat()为例,关于nextDouble()与nextLong(),大家可以自己尝试实现一下,此处不再多做阐述。
作者:Code_流苏(一个喜欢古诗词和编程的Coder😊)
★喜欢的话,还请多多点赞与关注! 感谢支持!
笔记更新随个人学习进度而进行,欢迎评论交流学习!