java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。
创建对象
Scanter sc = new Scanter(System.in)
获取字符串:
我们可以通过Scanner 类 的 next() nextLine() 方法获取输入的字符串,在获取之前可以使用hasXXXX来判断是否还有输入的数据
package com.cn.main;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//从键盘接收对象
Scanner sc = new Scanner(System.in);
//判断是否还有输入可以用来检查是否有非空字符对象
if(sc.hasNext()){
String c = sc.next();
System.out.println(c);
}
}
}
如果输入为空格则sc.hasNext()等于False没有任何输出。
package com.cn.main;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//从键盘接收对象
Scanner sc = new Scanner(System.in);
//检查是否有输入对象
if(sc.hasNextLine()){
String d = sc.nextLine();
System.out.println(d);
}
}
}
如果输入为空格则sc.hasNextLine()等于True直接输出空格。
next() 与 nextLine() 区别 | |
next() | nextLine() |
一定要读取到有效字符后才可以结束输入 | 以Enter为结束符 |
对输入有效字符之前遇到的空白,会自动将其去掉 | 返回的是输入回车之前的所有字符 |
不能得到带有空格的字符串 | 可以获得空白 |
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符(while循环) |
在读取前我们一般需要使用hasNext 或hasNextLine 判断是否还有输入的数据hasNext 检查是否有非空字符hasNextLine 检查输入中是否还有LinePattern。
如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取。
package com.cn.main;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
//从键盘接收对象
Scanner sc = new Scanner(System.in);
float a = 0.0f;
int b=0;
//判断是否是整数
if(sc.hasNextInt()){
b = sc.nextInt();
System.out.println("int"+b);
//判断是否是小数
}else if(sc.hasNextFloat()){
a=sc.nextFloat();
System.out.println("float"+a);
//其他类型数据
}else {
System.out.println("error");
}
}
}