1、HasNext和HasNextLine会要求用户在控制台输入字符,然后回车,把字符存储到Scanner对象中,不会赋值到变量中,可以用于判断输入的字符是否符合规则要求。
HasNext会以空格为结束标志,空格后的数字会抛弃掉。
HashNextLine会以Enter为结束标志
2、Next和NextLine是直接从Scanner中获取HasNext和HasNextLine存储起来的值给到变量中。如果前面没有HasNext或者HashNextLine获取值,也可以自己获取用户在控制台中输入的字符。
3、建议先用HashNext或者HasNextLine获取用户在控制台要求输入的字符。再用Next或NextLine从Scanner中获取值到程序变量中。目的是做一重字符非法的判断
1 public static void main(String[] args) {
2 Scanner scanner = new Scanner(System.in);
3
4 System.out.println("测试scanner方法的使用逻辑");
5 System.out.println("请输入一个整数");
6
7 if(scanner.hasNextInt()){
8 System.out.println("进来了吗");
9 int i=scanner.nextInt();
10 System.out.println("获得输入的数值是"+i);
11 }else{
12 System.out.println("不是整数");
13 }
14 }
解析1:第七行:如果用户输入是整型,会进入8行,第9行获取的值是hasNextInt预先存储到scanner的值
解析2:第七行:如果用户输入的不是整型,则会跳到12行中执行