2022.3.8 Scanner
next()
-
一定要读取到有效字符后才可以结束输入
-
对输入有效字符之前遇到的空白,next()方法会自动将其去掉
-
只有输入有效字符后才将其输入的空白作为分隔符或结束符
-
next()不能得到带有空格的字符串
1 package com.xing.scanner; 2 3 import java.util.Scanner; 4 5 public class Demo01 { 6 public static void main(String[] args) { 7 //创建一个扫描器对象,用于接收键盘数据 8 //类 变量名 9 Scanner scanner = new Scanner(System.in); 10 11 System.out.println("使用next方式接收:"); 12 13 //判断用户有没有输入字符串 14 if (scanner.hasNext()) {//如果用户还有输入 15 //使用next方式接收 16 String str = scanner.next();//程序等待用户输入,输入Hello World 17 System.out.println("输入的内容为:" + str);//输入的内容为:Hello 18 } 19 //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉 20 scanner.close(); 21 } 22 }
nextLine()
-
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
-
可以获得空白
1 package com.xing.scanner; 2 3 import java.util.Scanner; 4 5 public class Demo02 { 6 public static void main(String[] args) { 7 Scanner scanner = new Scanner(System.in); 8 9 System.out.println("使用nextLine方式接收:"); 10 if (scanner.hasNextLine()) { 11 String str = scanner.nextLine();//输入Hello World 12 System.out.println("使用nextLine方式输出" + str);//输出:Hello World 13 } 14 scanner.close(); 15 } 16 }
1 package com.xing.scanner; 2 3 import java.util.Scanner; 4 5 public class Demo03 { 6 public static void main(String[] args) { 7 int i = 0; 8 float f = 0.0f; 9 System.out.println("请输入整数:"); 10 11 Scanner scanner = new Scanner(System.in); 12 if (scanner.hasNextInt()) { 13 i = scanner.nextInt(); 14 System.out.println("输出" + i); 15 }else{ 16 System.out.println("输入的不是整数数据"); 17 } 18 19 20 System.out.println("请输入小数:"); 21 if (scanner.hasNextFloat()) { 22 f = scanner.nextFloat(); 23 System.out.println("输出" + f); 24 }else{ 25 System.out.println("输入的不是小数数据"); 26 } 27 28 scanner.close(); 29 } 30 }
输入多个数字,求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束并输出执行结果
1 package com.xing.scanner; 2 3 import java.util.Scanner; 4 5 public class Demo04 { 6 public static void main(String[] args) { 7 //输入多个数字,求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束并输出执行结果 8 Scanner scanner = new Scanner(System.in); 9 10 double sum = 0; 11 int m = 0;//数字个数 12 13 while (scanner.hasNextDouble()) { 14 double d = scanner.nextDouble(); 15 sum = sum + d; 16 m++; 17 System.out.println("你输入了" + m + "个数据,当前和为" + sum); 18 } 19 System.out.println(m + "个数和:" + sum); 20 System.out.println(m + "个数平均数:" + (sum / m)); 21 22 23 24 25 scanner.close(); 26 } 27 }

浙公网安备 33010602011771号