Scanner对象
通过Scanner类获取用户输入,实现程序和人的交互。
基本语法
Scanner s = new Scanner(System.in) //创建扫描器,用于接收用户输入的数据
Scanner类的next()与nextLine
通过next( )与nextLine( )方法来获取输入字符串,在读取前一般需要用hasNext()与hasNextLine()判断是否还有输入的数据
next()
- 读取到有效字符后才可以结束输入
- 输入有效字符之前的空白会自动将其去掉
- 输入有效字符后再输入的空白将被作为分隔符或者结束符
- next()不能得到带有空格的字符串
nextLine()
- 以Enter作为结束符
- 可以获得空白
代码示例
Scanner进阶运算
Scanner不仅可以获取字符串,还可以获取数字和布尔值等。
Scanner获取数据并计算和与均值
// 输入多个数据,并求其总和与平均数,每输入一个数字用回车确认通过输入非数字来结束输入并输出执行结果 Scanner scanner = new Scanner(System.in); //创建扫描器,用于接收输入数据 double sum = 0; //定义和变量并初始化为0 double avg; //定义均值变量 int j = 0; //用于统计输入数据的个数 while (scanner.hasNextDouble()) { //如果有输入的double类型的数据则循环执行此段代码,否则跳出循环 double num = scanner.nextDouble(); sum += num; //更新sum的值 j++; //更新输入的数据个数 } avg = sum / j; //计算平均数 System.out.println("数据的和为:" + sum); System.out.println("数据的平均数为:" + avg); scanner.close(); //关闭IO流
测试结果,注:每输入一个数据都要换行,当输入到非数据时才结束
比如输入数据为1 2 3 4 51 2 3 4 5 x //非数据 数据的和为:15.0 数据的平均数为:3.0