文章目录
- Scanner对象
- 基本语法
- 使用next()接受
- 使用nextLine()接受
- 小案例
- 总结
Scanner对象
java给我们提供了一个工具类,我们可以获取用户的输入
java.util.Scanner是java5的新特性,我们可以通过Scanner类来获取用户的输入
基本语法
Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据
使用next()接受
package com.baoli.Scanner;
import java.util.Scanner;
public class Demo01 {public static void main(String[] args) {// 创建一个扫描器对象,用于接受键盘数据Scanner scanner = new Scanner(System.in);// 判断用户有没有输入字符串if(scanner.hasNext()) {// 使用next方式接受String str = scanner.next(); // 程序会等待用户输入完毕System.out.println("输出的内容为:"+str);}// 凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉scanner.close();}
}输入:hello word
输出的内容为:hello
使用nextLine()接受
package com.baoli.Scanner;
import java.util.Scanner;
public class Demo02 {public static void main(String[] args) {
// 从键盘接受数据Scanner scanner = new Scanner(System.in);System.out.println("使用nextLine方式接受");
// 判断是否还有输入if (scanner.hasNextLine()) {String str = scanner.nextLine();System.out.println("输出的内容为:"+str);}scanner.close();}
}使用nextLine方式接受
hello world
输出的内容为:hello world
小案例
package com.baoli.Scanner;
import java.util.Scanner;
public class Demo04 {public static void main(String[] args) {
// 案例:我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入,并输入结果Scanner scanner = new Scanner(System.in);
// 定义变量double sum = 0;int count = 0;
// 通过循环判断是否还有输入,并在里面对每一次进行求和统计while (scanner.hasNextDouble()) {sum += scanner.nextDouble();count++;}System.out.println(count + "个数的总和为:" + sum);System.out.println(count + "个数的平均值为:"+ (sum/count));}
}
总结
next():
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之间遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
- next()不能得到带有空格的字符串
nextLine()
- 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
分隔符或者结束符 - next()不能得到带有空格的字符串
nextLine()
- 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
- 可以获得空白