function 发表于 2020-7-21 14:48

java中Scanner进阶使用

本帖最后由 function 于 2020-7-21 15:48 编辑

##### scanner的基本流程:


##### hasNext()与hasNextLine()的判断成分:

###### 使用hasNext()与hasNextLine()字符串前一般要判断下是否还有输入的数据:

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

##### 使用nextInt()和nextFloat():

```java
package com.wenjian.scanner;

import java.util.Scanner;

public class demo04 {
    public static void main(String[] args) {
      //从键盘接收数据
      Scanner qwe = new Scanner(System.in);

      //定义变量
      int i = 0;
      float f = 0.0f;

      System.out.println("请输入整数:");

      //如果...那么...
      if (qwe.hasNextInt()) {
            i = qwe.nextInt();
            System.out.println("整数数据:" + i);
      } else {
            System.out.println("输入的不是整数数据!");
      }
      System.out.println("请输入小数:");

      Scanner asd = new Scanner(System.in);

      //如果...那么...
      if (asd.hasNextFloat()) {
            f = asd.nextFloat();
            System.out.println("小数数据" + f);
      } else {
            System.out.println("输入的不是小数");
      }
      qwe.close();
      asd.close();
    }
}

输出:
请输入整数:
10
整数数据:10
请输入小数:
10.1
小数数据10.1

进程已结束,退出代码 0
```

##### 一个scanner例题:

###### 可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:


```java
package com.wenjian.scanner;

import java.util.Scanner;

public class demo05 {
    public static void main(String[] args) {
      //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
      Scanner qwe = new Scanner(System.in);

      //定义变量,和,sum
      double sum = 0;
      //定义变量,n,计算输入了多少个数字
      int n = 0;

      while (qwe.hasNextDouble()) {
            double x = qwe.nextDouble();
            n = n + 1;
            sum = sum + x;
            System.out.println("你输入了第" + n + "个数据,然后当前结果sum=" + sum);
      }
      System.out.println(n+ "个数的和为"+sum);
      System.out.println(n+"个数的平均值是"+(sum/n));
      qwe.close();
    }
}

输出:
10
你输入了第1个数据,然后当前结果sum=10.0
20
你输入了第2个数据,然后当前结果sum=30.0
30
你输入了第3个数据,然后当前结果sum=60.0
x
3个数的和为60.0
3个数的平均值是20.0

进程已结束,退出代码 0

```

WebSpring 发表于 2020-7-25 15:45

几年没写代码了 陌生了

Moofans 发表于 2020-7-31 21:42

这算是进阶的用法吗?感觉是常用的一些呀
页: [1]
查看完整版本: java中Scanner进阶使用