一、概述
- 一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器
- java.util //导包
- public final class Scanner //不能去继承
二、常用写法
Scanner sc = new Scanner(System.in); //键盘录入,System.in是一个输入流
int i = sc.nextInt(); //键盘录入整数存储在i中
- hasnextInt():判断输入数据是否是Int,是的话返回true
- nextInt():将输入的转换为int
- hasNextXxx():判断是否还有下一个输入项,其中Xxx可以是Int、Double等。如果需要判断是否包含下一个字符串,则可以省略XXX。
- nextXxx():获取下一个输入项。Xxx的含义和上个方法中Xxx相同,默认情况下,Scanner使用空格,回车等作为分隔符。
三、两个常用的方法:
1、public int nextInt():获取一个int类型的值
2、public string nextLine():获取一个String类型的值
四、键盘录入的一个小问题:
- 问题:
Scanner sc = new Scanner(System.in);
System.out.println("输入第一个整数:");
int i = sc.nextInt();
System.out.println("请输入字符串:");
String line1 = sc.nextLine();
System.out.println("i = "+ i + "," + "line = "+ line1);
- 结果:
输入第一个整数:
10
请输入字符串:
i = 10,line =
- 说明:只录入了一个整数,回车就出现以上结果
- 解释:nextInt()是键盘录入整数的方法,当我们录入10的时候,其实在键盘上录入的是10和\r\n,nextInt()只获取10就结束了。nextLine()是键盘录入字符串的方法,可以接收任意类型,但是只要遇到\r\n就结束了。
- 解决办法:
1、创建两次对象,但是浪费空间
2、键盘录入的都是字符串,都用nextLine()方法,后面会学到将整数字符串转成成整数的方法