Scanner

Scanner对象

之前我们学的基本语法中我们并没有实现程序和人的交互,但是java给我们提供了这样的一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入

 

其基本语法:Scanner s=new Scanner(System.in);

通过Scanner类的next() 与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()hasNextLine()判断是否还有输入的数据。

 

next():

1、一定要读取到有效字符后才可以结束输入;

2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉

3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符

4、next()不能得到带有空格的字符串

 

nextLine():

1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符

2、可以获得空白

 

 

下面用代码实现对 next() 和 nextLine() 的区别:

package main.com.han.scanner;

import java.util.Scanner;

public class Demo05 {
   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);
      }
       scanner.close();
  }


}

 

package main.com.han.scanner;

import java.util.Scanner;

public class Demo04 {
   public static void main(String[] args) {
       Scanner scanner=new Scanner(System.in);
       System.out.println("请输入您的内容:");
       String str=scanner.nextLine();
       System.out.println("您输入的内容是:"+str);
       scanner.close();
  }
}


package main.com.han.scanner;
import java.util.Scanner;
public class demo03 {
   public static void main(String[] args) {
      Scanner scanner= new Scanner(System.in);
       System.out.println("Scanner输出的内容是:");
       if (scanner.hasNext()){
           String str=scanner.next();
           System.out.println("Scanner的下一个内容是:"+str);
      }else{
           System.out.println("无内容输出");
      }
       scanner.close();
  }
}

 

scanner的应用:输入一串数字并求和以及平均值

package main.com.han.scanner;

import java.util.Scanner;

public class Demo06EX {
   public static void main(String[] args) {
       Scanner scanner=new Scanner(System.in);
       System.out.println("请输入您的数据:");
       //定义一个变量m来统计输入的数字个数
     int m=0;
     //使用double类型来计算总和
     double sum=0;
     //用while语句判断循环是否有输入,并计算输入的数字个数和总和
     while(scanner.hasNextDouble()){
         Double x=scanner.nextDouble();
         m++;   //也可以写成m=m+1
         sum=sum+x;
      }
        System.out.println("您一共输入了:"+m+"个数字");
       System.out.println("求得的总和是:"+sum);
       System.out.println("求得的平均值是:"+sum/m);
       scanner.close();
  }

}
posted @ 2021-04-21 16:36  Ambitious^  阅读(24)  评论(0)    收藏  举报