Scanner接受用户输入
接受用户输入
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
// 扫描系统的输入
Scanner input = new Scanner(System.in);
//接受用户输入的方法用于接收各种数据类型
// input.nextInt();
// input.nextBoolean();
// input.nextByte();
// input.nextLong();
// input.nextShort();
// input.nextFloat();
// input.nextDouble();
System.out.println("请输入nextLine的内容:");
String str0 = input.nextLine();
System.out.println("请输入next接受的内容:");
//用于接受任何数据类型返回字符串类型
String str1 = input.next();
//next接受文字 nextLine接受一行文字,当输入时同时满足两个方法,所以nextLine方法未让用户输入
/*next 和 nextLine不能同时使用:
* nextLine会接受上一个回车,两个方法同时监听到了回车同时执行
*/
//next 可以以空格结尾 无法获取含有空格的输入
/*关于nextLine()放在后面获取不到值的问题:
* 因为next()会遗留一个回车,程序再通过next方法时会留下一个enter键,会被nextLine接受,导致少了一行
*/
System.out.println("请输入nextLine的内容:");
String str2 = input.nextLine();
System.out.println("请输入nextInt的内容:");
int str3 = input.nextInt();
System.out.println("请输入nextLine的内容:");
String str4 = input.nextLine();
input.close();
System.out.println(str0+"=============="+str1+"==========="+str2+"=========="+str3+"================"+str4);
}
}
运行截图:
判断用户输入类型:
public class Demo10 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入数字:");
int i = input.nextInt();
System.out.println("您输入的是:"+i);
}
}
代码要求输入的是数字,但是这时候输入abc会发生什么呢?
运行如图:
会发现程序报错:InputMismatchException :你输入的与要求输入的数据类型不符。
如何避免这种情况发生呢?我们可以在接受用户输入之前判断用户输入的类型。
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("请输入数字:");
//判断用户输入的是什么类型:
if(!input.hasNextInt()) {
System.out.println("您输入的不是数字!");
} else {
int i = input.nextInt();
System.out.println("您输入的是:"+i);
}
}
如果用户输入的不是int类型数据就会输出“您输入的不是数字”。
运行结果:

浙公网安备 33010602011771号