import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
int i = 0;
Scanner scanner = new Scanner(System.in);
//下面检验hasNextInt方法
System.out.printlnt("请输入整数:");
if (scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("输入的整数为:" + i);
}else{
System.out.println("输入的不是整数");
}
//下面检验next和nextLine的区别
System.out.println("输入");
String str = scanner.next();//此时要输入,如果输入的是空格12空格123
System.out.println("输入的内容为:" + str);//则输出的是12,截取第一个字符块儿
scanner.close();
}
}
注意
- 运行scanner.hasNextInt的时候,程序就会等待用户输入,输入完了以后再做判断。
- 运行scanner.nextInt的时候,它返回的是用户的输入值,这个值从哪里来呢?如果前面有scanner.hasNextInt语句,则用户输入的东西被scanner.nextInt直接调用,不会等用户输入新的值了;如果前面没有scanner.hasNextInt类似语句,则程序会等用户输入,然后返回输入值。
- 关于next和nextLine的区别:两者都是获取字符串的方法,但获取规则不同,next截取第一个字符块儿,nextLine获取所有字符。什么意思呢?next会忽略遇到有效字符前的所有空格、tab、enter(敲enter也没反应的!),然后以遇到有效字符后的空格、tab、enter作为结束符;nextLine则简单许多,它以enter为结束符,返回enter以前的所有字符,包括空格、tab。
比如:如果输入的为:空格12空格123,则next的输出为12,nextLine的输出为空格12空格123
注意:nextInt等和next是一样的,截取符合要求的第一个整数块儿。