【狂神说Java】用户交互Scanner

Scanner类来获取用户的输入

java.util.Scanner 是Java5的新特征,我们可以通过Scanner类来获取用户的输入。

  • 基本语法
Scanner s = new Scanner(System.in);
  • 通过Scanner类的next()nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()hasNextLine()判断是否还有输入数据。
// next()
// 创建一个扫描器对象,用于接收键盘数据
Scanner s = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if (s.hasNext()){
    //用next方式接收
    String str = s.next();
    System.out.println(str);
}
//凡是属于IO流的类如果不关闭会一直占用资源
s.close();
// nextLine()
// 创建一个扫描器对象,用于接收键盘数据
Scanner s = new Scanner(System.in);
System.out.println("使用nextLine方式接收:");
//判断用户有没有输入字符串

String str = s.nextLine();
System.out.println(str);

//凡是属于IO流的类如果不关闭会一直占用资源
s.close();
  • next():
    • 一定要读取到有效字符后才可以结束输入。
    • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
    • 只有输入有效字符后才能将后面输入的空白作为分隔符或者结束符。
    • next()不能得到带有空格的字符串
  • nextLine():
    • 以Enter为结束符,nextLine()方法返回的是输入回车之前的所有字符。
    • 可以获得空格。

Scanner进阶

  • 输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
import java.util.Scanner;

public class ScannerPra {
    public static void main(String[] args) {
        // 创建一个扫描器对象,用于接收键盘数据
        Scanner scanner=new Scanner(System.in);

        double sum = 0.0;
        int i = 0; // 统计输入次数
        System.out.println("输入一个数字用回车确认,通过输入非数字来结束输入:");
        // 循环,输入数字
        while (scanner.hasNextDouble()){
            double a = scanner.nextDouble();
            i++;
            sum += a;
        }

        System.out.println("总和为"+sum+",平均值为"+ (sum/i));

    }
}
posted @ 2021-08-31 20:01  Jie7  阅读(36)  评论(0)    收藏  举报