一、基本用法
接收键盘数据的方法:next()、nextLine()
判断是否还有输入的数据的方法:hasNext()、hasNextLine()
示例
- 示例1-- next()与hasNext()
import java.util.Scanner;
public class Demo01{
public static void main(String[] args) {
//定义扫描器对象,用于接收键盘数据
Scanner sc = new Scanner(System.in);
System.out.println("next接收数据:");
if(sc.hasNext()){
String str = sc.next();
System.out.println("用户输入的内容为:"+str);
}
//凡是属于IO流的类如果不关闭会一直占用资源
sc.close();
}
}
测试结果:
- 示例2–nextLine()与hasNextLine()
import java.util.Scanner;
public class Demo02{
public static void main(String[] args) {
//定义扫描器对象,用于接收键盘数据
Scanner sc = new Scanner(System.in);
System.out.println("nextLine接收数据:");
if(sc.hasNextLine()){
String str = sc.nextLine();
System.out.println("输入的内容为:"+str);
}
//关闭IO流
sc.close();
}
}
测试结果:
结果分析
next():
-
只有输入有效字符后才将其后面输入的空白作为结束符(若只输入空格,输入不会结束)
-
对于输入有效字符之前的空白,next()方法会自动去掉。
(读取字符串" hello world"与"hello world"的结果是一样的,都只读取了"hello")
-
以空格为结束符
nextLine():
- 以回车为结束符,–nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空格
二、判断用户输入类型
nextInt()、nextFloat()、nextDouble()…
hasNextInt()、hasNextFloat、hasNextDouble()…
示例
import java.util.Scanner;
public class Demo03{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字:");
if(sc.hasNextInt()){
int num = sc.nextInt();
System.out.println("输入的整数为:"+num);
}
else if(sc.hasNextFloat()){
Float num = sc.nextFloat();
System.out.println("输入的为浮点数:"+num);
}
else {
System.out.println("不是整数也不是浮点数");
}
sc.close();
}
}
测试结果:
- 输入整数时:
- 输入浮点数时:
- 其他:
注:
判断输入类型的函数还有很多,具体可查阅api文档
api文档链接: