Scanner方法

Scanner对象

Scannner是一个扫描用户输入的 类,电脑通过Scannner来获取用户的输入。

基本语法

Scanner s = Scanner(System.in);

在Scanner类的next()与nextLine方法来获取输入的字符串,在读取时一般需要hasNext()与hasNextLine()判断是否还有要输入的数据。

next() 一个

hasNext() 还是否有一个

 

nextLine() 一行

hasNextLine() 还是否有一行

 

next():

  • 必须读取到用户输入的有效数据后才能继续运行或结束。

  • 在用户输入的有效数据之前遇到空格,会自动去除空格。

  • 如用户输入了有效字符后在其后面输入空格,空格会作为结束符,从而不会显示空格之后的字符。

  • next()不能得到有空格的字符串,因为它只能获取空格之前的字符串。

nextLine()

  • nextLine()是以回车键作为结束符的,在回车之前所有字符都可以被获取。

 

package weiwei.scanner;

import java.util.Scanner;

public class Dem01 {
//Scanner对象
   public static void main(String[] args) {//main方法

       Scanner scanner = new Scanner(System.in);//(IO流) 创建扫描器对象,用于接收键盘数据

       System.out.println("使用next的方法接收:");

       //判断用户有没有输入字符串
       if (scanner.hasNext()) {
          ;//如果用户还有一个输入
           // 不用再hasNext()后标记=true,默认都为true

           String str = scanner.next();//接收用户的输入,查看用户是否还要输入。之后存储进str内
           //str为一个String(字符串)类型的存储器

           System.out.println("输入的内容为:" + str);//输出保存在str内的数据
      }
   scanner.close();//关闭scanner
       //凡是属于IO流的类,不关闭会一直占用资源。每次使用完后必须关闭 .close为关闭
  }

}

Scanner因为有hasNext和hasNextLine方法,所有不需要if也可以做出判断。

package weiwei.scanner;
//Scanner可以不适用if,也能计算出结果
import java.util.Scanner;

public class Dem02 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       System.out.println("你说句话呀:");
           String 二狗=scanner.nextLine();
           System.out.println("你再说一遍:"+二狗);
       scanner.close();
  }
}

当配上其他条件时,可做出简单的程序

package weiwei.scanner;

import java.security.cert.X509Certificate;
import java.util.Scanner;//要求:统计用户输入的次数,并计算输入的数值总和与平均值

public class Dem04 {
   public static void main(String[] args) {
       /*用户可以输入多个数字,求其总和与平均数,每输入一个数字用回车确定,通过输入
       非数字来结束输入并执行结果。
        */
       Scanner scanner = new Scanner(System.in);//获取用户输入的数值

       //定义用户输入多少次数字
       double sum = 0;
       //计算输入多少个数字(用和数以数字总数,得到平均数)
       int m = 0;
       System.out.println("请输入数字:");
       //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
       while(scanner.hasNextDouble()){//循环语句(获取用户输入的方法)
           double x = scanner.nextDouble();/*在循环语句中设立变量x为用户当次输入
的数值,while每循环一次,代表用户完成一次数值输入,x的值也会相应随着用户输入的数值
改变*/
           //完成一次输入,m就会自动加1,用来统计用户输入的次数
           m=m+1;//可用m++的循环结构。在while内循环一次,就+1
           sum=sum+x;//x代表用户的输入,while循环一次,就在原来数值的基础上再相加
           System.out.println("你当前为第"+m+"次输入,总数和为:"+sum);
      }
       System.out.println("你输入的总数为"+sum+"平均值为"+sum/m);
        scanner.close();//关闭Scanner
        if (sum/m>100){
           System.out.println("你的平均数真大");
      }else{
           System.out.println("你的平均数太小");
      }

  }
}

 

原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/13736683.html