Scanner对象
用于实现程序和人的交互,调用JAVA的Scanner工具类,可以获取用户的输入。Java.util.Scanner 是新特征, 可以通过Scanner类来获取用户的输入。
基本语法
//创建一个扫描器对象,用于接受键盘数据 Scanner scanner = new Scanner(System.in);
Scanner类的next()与nextLine()接收输入数据的区别
使用next()接收
遇到空格会停止
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); //创建一个扫描器对象,用于接受键盘数据 System.out.println("使用next方式接收"); //判断用户有没有输入字符串 if (scanner.hasNext()){ //使用next方式接收 String str = scanner.next(); //程序会等待用户输入完毕 System.out.println("输出的内容为:"+str); //输入hello world 输出的内容为 hello //原因是用next接收到 空格 会停止 } //方式属于 IO流的类(输入/输出) 如果不关闭会一直占用资源,要养成用完就关掉的习惯 scanner.close(); }
使用nextLine()接收
遇到回车 Enter 停止接收
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("输入内容"); if (scanner.hasNextLine()){ String str = scanner.nextLine(); System.out.println("输出的内容为:"+str); //输入内容 hello wordl //输出的内容为: hello wordl } scanner.close(); }
直接将输入流赋值给变量
public static void main(String[] args) { System.out.println("输入的数据为:"); Scanner scanner = new Scanner(System.in); String str = scanner.nextLine(); System.out.println("输出的内容为:"+str); //输入的数据为: hello world //输出的内容为:hello world scanner.close(); }
习题(实现加法的循环求和)
public static void main(String[] args) { //求和 double sum =0; //计算元素个数 int m=0; //用到循环判断输入的个数 Scanner scanner = new Scanner(System.in); while(scanner.hasNextDouble()){ double x = scanner.nextDouble(); m++; sum = sum+x; } System.out.println("求和为"+sum); System.out.println("求平均数为:"+sum/m); scanner.close(); //输入 10 20 30 40 //输出 求和为100.0 求平均数为:25.0 }