Scanner
java.util.Scanner是Java5的新特征
可以通过Scanner类来获取用户的输入
//基本语法 Scanner s = new Scanner(System.in);
通过Scanner类的next()和nextLine()方法获得字符串,在读取前一般需要使用hasNext()和hasNextLine()判断是否还有输入的数据。
next():
-
一定要读取到有效字符串后才可以结束输入
-
对输入有效字符串前遇到空白,next()会自动去掉空白
-
只有输入有效字符后才能将其后面的空白作为分隔符或结束符
-
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); } //凡是属于IO流的类如果不关闭就会一直占用资源,养成用完就关的习惯 scanner.close(); } //输入Hello World只返回Hello
nextLine():
-
以Enter为结束符,nextLine()方法返回的是输入Enter前的所有字符
-
可以获得空白
//输入Hello World只返回Hellopublic 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(); } //输入Hello World只返回Hello World
一个简单的循环计算:计算输入数的和与平均数
public static void main(String[] args) { //可以输入多个数字,并求其总和,每输入一个数字用Enter确认,通过输入非数字字符结束输入并执行 Scanner scanner = new Scanner(System.in); //和 double sum = 0; //计算输入了多少个数字 int m = 0; //平均数 double avg; while (scanner.hasNextDouble()){ double num = scanner.nextDouble(); m++; sum = sum = num; } avg = sum/m; System.out.println("和:"+sum); System.out.println("平均数:"+avg); }