用户交互Scanner
-
通过Scanner类来获取用户输入(java.util.Scanner)
-
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入数据
-
next()不能接收有空格的字符串,读到有效字符后才会结束,自动去掉有效字符前的空格
-
nextLine()以Enter为结束符,接收Enter回车之前的字符,可以有空格
-
基本语法
public class Demo{ public static void main(String[] args){ //创建一个扫描对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("接收数据"); //判断用户有没有输入字符串 if(scanner.hasNext()){ //使用next方式接收 String str = scanner.next(); System.out.println("输出的内容为:"+str); } //凡是属于IO流的类如果用完不关闭会一直占用资源,养成好习惯用完要关掉 scanner.close(); } }
Scanner进阶使用
-
import java.util.Scanner; public class Demo { //通过输入多个数字计算和与平均值,每个数字用回车键确认,通过输入非数字来结束输入 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //和 double sum = 0; //计算输入了多少个数字 int m = 0; //通过循环判断是否还有输入,并在里面对每一次进行求和统计 while(scanner.hasNextDouble()){ double x = scanner.nextDouble(); m = m+1;//m++ sum=sum+x; } System.out.println(m+"个数的和为"+sum); System.out.println(m+"个数的平均数是"+sum/m); scanner.close(); } }
-
import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //从键盘接收数据 int i = 0; float f = 0.0f; System.out.println("请输入整数:"); //如果...那么... if(scanner.hasNextInt()){ i = scanner.nextInt(); System.out.println("整数:"+i); }else{ System.out.println("输入的不是整数数据!"+i); } System.out.println("请输入小数:"); //如果...那么... if(scanner.hasNextFloat()){ f = scanner.nextFloat(); System.out.println("小数数据:"+f); }else{ System.out.println("输入的不是小数数据!"+f); } } }