Scanner类与Scanner进阶
Scanner类
之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
- 基本语法:
Scanner scanner = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,
在读取前我们一般需要使用hasNext() 与hasNextLine()判断是否还有输入的数据。
next():
- 一定要读取到有效字符后才可以结束输入。
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next()不能得到带有空格的字符串。
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next()方式接收:");
//判断用户是否有输入
if (scanner.hasNext()){
//使用next()方法接收
String str = scanner.next(); //启动next方法会等待用户输入
System.out.println("输出内容是:"+str);
}
scanner.close(); //IO流的类不关闭会一直占用资源,要养成用完关闭的习惯
//启动程序并输入:Hello world!
//输出结果为:
Hello
nextLine():
- 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白。
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine()输入:");
if (scanner.hasNextLine()){
String str = scanner.nextLine();
System.out.println("输入内容是:"+str);
}
scanner.close();
//启动程序并输入:Hello world!
//输出结果为:
Hello world!
其他next()方法:
还有nextInt()、nextDouble()、nextFloat()等。
Scanner进阶:
//输入多个数字,并求其总和与平均数,每输入一个数字用回车键确认,输入非数字结束输入并执行结果。
Scanner scanner = new Scanner(System.in);
double sum = 0.0; //和
int i = 0; //输入的总数
//通过循环判断是否还有输入的数,并进行求和统计
System.out.println("输入数字开始运算,输入字母结束运算:");
while(scanner.hasNextDouble()) {
double d = scanner.nextDouble();
i++;
sum += d;
System.out.println("已输入"+i+"个数据,当前和为:"+sum);
}
System.out.println("sum:\t"+sum);
System.out.println("average:\t"+(sum/i));
scanner.close();

浙公网安备 33010602011771号