javaSE——流程控制——用户交互Scanner
Scanner对象
- 用来获取用户输入。
java.util.Scanner
是Java5的新特性- 创建的基本语法:
Scanner scanner = new Scanner(System.in);
...
scanner.close();
-
通过Scanner类的
next()
与nextLine()
方法获取输入的字符串- 在读取前我们一般需要使用
hasNext()
与hasNextLine()
判断是否还有输入的数据。
- 在读取前我们一般需要使用
-
next()
:- 一定要读到有效字符后才可以结束输入
- 一遇到空白符号就作为结束符
- next()不能得到带有空格的字符串
-
nextLine()
:-
以
Enter
为结束符 -
可以获得带空白字符的字符串
package com.kuang.scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next方式接收:");//输入hello world //判断用户有没有输入字符串 //如果输入了 if (scanner.hasNext()) { //使用next方式接收 String str = scanner.next(); System.out.println("输出的内容为:" + str);//输出hello } //凡是属于IO流的类如果不关闭会一直占用资源,要养成良好习惯用完关掉 scanner.close(); } }
package com.kuang.scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方式接收:");//输入hello world if (scanner.hasNext()) { String str = scanner.nextLine(); System.out.println("输出的内容为:" + str);//输出hello world } scanner.close(); } }
、、其实这个demo用不到if,前面写上if也只是为了介绍下if这种判断用法 package com.kuang.scanner; import java.util.Scanner; public class Demo03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入:");//输入hello world String str = scanner.nextLine(); System.out.println("输出的内容为:" + str);//输出hello world scanner.close(); } }
-
进阶
package com.kuang.scanner;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认;通过输入非doble来结束输入并输出最终结果
Scanner scanner = new Scanner(System.in);
//和
double sum = 0;
//计数器
int m = 0;
// 通过循环判断是否还有输入,并在里面对每一次进行求和和展示
// 循环终止条件:没有输入double类型数字,比如'x'
while (scanner.hasNextDouble()) {
double x = scanner.nextDouble();
sum += x;
m++;
System.out.println("你输入了第" + m + "个数据,当前结果sum=" + sum);
}
System.out.println(m + "个数的和为:" + sum);
System.out.println(m + "个数的平均值为:" + (sum / m));
scanner.close();
}
}