这一节看一下 Java Scanner 类
通过 Scanner 类来获取用户的输入。
Scanner s = new Scanner(System.in);
我们通过 Scanner 类的 next() 和 nextLine() 方法获取输入字符串,在读取之前需要使用 hasNext 和 hasNextLine 判断是否还有输入
先看 next() 方法:
package testPackage;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("用 next() 方法判断");
if(scan.hasNext()){
String str1 = scan.next();
System.out.println(str1);
}
scan.close();
}
}
运行结果:
用 next() 方法判断
xsjkfldjklasjklvjkca com
xsjkfldjklasjklvjkca
可以看到,这个只能够接受字符串,不能够空格换行。
下面看 nextLine() 方法:
if(scan.hasNextLine()){
String str1 = scan.nextLine();
System.out.println(str1);
}
可以看到 nextLine() 方法可以接受空格,到 Enter 结束
另外,Scanner 类也可以接受int 和 float 类型的数据。但是输入前使用 hasNextXxx() 方法进行验证,再 nextXxx() 来获取。
package testPackage;
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int i = 0;
float f = 0.0f;
System.out.println("输入整数:");
if(scan.hasNextInt()){
i = scan.nextInt();
System.out.println("整数"+ i);
}else{System.out.println("输入的不是整数");}
System.out.println("输入小数:");
if(scan.hasNextFloat()){
f = scan.nextFloat();
System.out.println("小数"+f);
} else{System.out.println("输入的不是小数");}
scan.close();
}
}
运行结果:
输入整数:
1
整数1
输入小数:
1.3
小数1.3