java

导航

Java教程:JavaScanner类

来源 :中华考试网 2020-11-20

  一、Java Scanner 类

  java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。

  下面是创建 Scanner 对象的基本语法:

  Scanner s = new Scanner(System.in);

  接下来我们演示一个最简单的数据输入,并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前我们一般需要使用 hasNext 与 hasNextLine 判断是否还有输入的数据:

  二、使用 next 方法:

  ScannerDemo.java 文件代码:

  import java.util.Scanner;

  public class ScannerDemo {

  public static void main(String[] args) {

  Scanner scan = new Scanner(System.in);

  // 从键盘接收数据

  // ext方式接收字符串

  System.out.println("next方式接收:");

  // 判断是否还有输入

  if (scan.hasNext()) {

  String str1 = scan.next(); System.out.println("输入的数据为:" + str1); } scan.close(); } }

  执行以上程序输出结果为:

  $ javac ScannerDemo.java

  $ java ScannerDemo

  next方式接收:

  runoob com

  输入的数据为:runoob

  可以看到 com 字符串并未输出,接下来我们看 nextLine。

  三、使用 nextLine 方法:

  ScannerDemo.java 文件代码:

  import java.util.Scanner;

  public class ScannerDemo {

  public static void main(String[] args) {

  Scanner scan = new Scanner(System.in);

  // 从键盘接收数据

  // extLine方式接收字符串

  System.out.println("nextLine方式接收:");

  // 判断是否还有输入

  if (scan.hasNextLine()) {

  String str2 = scan.nextLine();

  System.out.println("输入的数据为:" + str2); } scan.close();

  } }

  执行以上程序输出结果为:

  $ javac ScannerDemo.java

  $ java ScannerDemo

  nextLine方式接收:

  runoob com

  输入的数据为:runoob com

  可以看到 com 字符串输出。

  next() 与 nextLine() 区别

  next():

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

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

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

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

  nextLine():

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

  填写下面表单即可预约申请免费试听java课程!害怕学不会?助教陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

  2、可以获得空白。

  如果要输入 int 或 float 类型的数据,在 Scanner 类中也有支持,但是在输入之前最好先使用 hasNextXxx() 方法进行验证,再使用 nextXxx() 来读取:

  ScannerDemo.java 文件代码:

  import java.util.Scanner;

  public class ScannerDemo {

  public static void main(String[] args) {

  Scanner scan = new Scanner(System.in);

  // 从键盘接收数据

  int i = 0;

  float f = 0.0f;

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

  if (scan.hasNextInt()) {

  // 判断输入的是否是整数

  i = scan.nextInt();

  // 接收整数

  System.out.println("整数数据:" + i);

  }

  else {

  // 输入错误的信息

  System.out.println("输入的不是整数!");

  }

  System.out.print("输入小数:");

  if (scan.hasNextFloat()) {

  // 判断输入的是否是小数

  f = scan.nextFloat();

  // 接收小数

  System.out.println("小数数据:" + f);

  }

  else {

  // 输入错误的信息

  System.out.println("输入的不是小数!");

  } scan.close();

  } }

  执行以上程序输出结果为:

  $ javac ScannerDemo.java

  $ java ScannerDemo

  输入整数:12

  整数数据:12

  输入小数:1.2

  小数数据:1.2

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

  ScannerDemo.java 文件代码:

  import java.util.Scanner;

  class ScannerDemo {

  public static void main(String[] args) {

  Scanner scan = new Scanner(System.in);

  double sum = 0;

  int m = 0;

  while (scan.hasNextDouble()) {

  double x = scan.nextDouble();

  m = m + 1;

  sum = sum + x;

  }

  System.out.println(m + "个数的和为" + sum);

  System.out.println(m + "个数的平均值是" + (sum / m)); scan.close();

  } }

  执行以上程序输出结果为:

  $ javac ScannerDemo.java

  $ java ScannerDemo

  12

  23

  15

  21.4

  end

  4个数的和为71.4

  4个数的平均值是17.85

分享到

您可能感兴趣的文章