控制台用户交互Scanner
java.util.Scanner是JAVA5的新特征,可以通过Scanner来获取用户的输入信息
基本语法:
Scanner $input=new Scanner(System.in);
int i=$inout.nextInt();
System.out.println("请输入:" );
System.out.println("输出的结果为:" + i);
拓展:
- 可以使用ALT+Enter自动补全"="前的代码
例如:new Scanner(System.in);使用ALT+Enter - $ input.close;关闭控制台,避免占用
使用hasNext来判断用户的输入格式
基本语法:
System.out.println("判断控制输入是否为有效数据");
System.out.println("输入int数据:");
Scanner $input=new Scanner(System.in);
//接收int数据并且判断
if ($input.hasNextInt()){
//接收用户信息
int i = $input.nextInt();
System.out.println("数据等于 = " + i);
}else{
System.out.println("格式错误!重新输入");
}
拓展:
通过Scanner类的next()与nextLine()方法获取用户输入的字符串(String),在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据
一、使用next方式
System.out.println("使用next与nextLine来判断用户的String输出");
Scanner input = new Scanner(System.in);
System.out.println("使用next接收:");
//判断是否输出
if (input.hasNext()){
//用户接受数据 可使用input.next补全
String str = input.next();
System.out.println("输出的结果为:" + str);
}
二、使用nextLine接收
System.out.println("使用nextLine接收");
Scanner input2 = new Scanner(System.in);
//判断是否还有输出
if (input2.hasNextInt()){
//用户接受数据 可使用input.next补全
String next = input2.next();
System.out.println("输出的结果为:" + next);
}
//关闭控制台输入
$input.close();
input.close();
input2.close();
总结区别:
next():
- 一定要读取到有效字符后才可以结束输入
- 对于有效字符遇到空白(空格),next()会自动去掉
- 只有输入有效字符后才将其后面的空白(空格)作为结束符或者分隔符
- next不能的得到带有空格的字符串
nextLine(): - 以Enter为结束符,也就是说nextLine()方法是输入回车前的所有字符
- 可以获得空白!