Java中的Scanner操作详解

Scanner 是 Java 中的一个常用类,用来读取控制台或文件中的输入数据。它提供了一种简单的方式来解析基本类型和字符串,并支持对正则表达式进行匹配。

Scanner 类位于 java.util 包中,因此在编写程序时需要 import 该包。在开始使用 Scanner 之前,我们需要创建一个 Scanner 对象来访问输入源。

创建 Scanner 对象的语法为:

Scanner scanner = new Scanner(System.in);

上面的代码创建了一个 Scanner 对象,可以使用它来读取标准输入流中的数据。除此之外,我们还可以使用其他的输入流来创建 Scanner 对象。

下面我们来看一些常用的 Scanner 操作。

  1. 读取字符串

我们可以使用 next() 方法来读取一个字符串,它会读取控制台输入中的下一个单词,并返回一个字符串。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = scanner.next();
System.out.println("你输入的字符串是:" + str);

上面的代码运行结果:

请输入一个字符串:Hello World!
你输入的字符串是:Hello

上述代码只读取了输入中的第一个单词"Hello",因为 next() 方法默认会使用空格分隔输入的字符串,所以它只会读取输入中的第一个单词。如果需要读取整个字符串,可以使用 nextLine() 方法。

  1. 读取整数

我们可以使用 nextInt() 或 nextLong() 来读取一个整数或长整数,如果输入的不是数值类型,会抛出 InputMismatchException 异常。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数:");
int num = scanner.nextInt();
System.out.println("你输入的整数是:" + num);

上面的代码运行结果:

请输入一个整数:123
你输入的整数是:123
  1. 读取浮点型数据

我们可以使用 nextFloat() 或 nextDouble() 来读取一个浮点型数据。如果输入的不是浮点型数据,会抛出 InputMismatchException 异常。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个浮点数:");
float f = scanner.nextFloat();
System.out.println("你输入的浮点数是:" + f);

上面的代码运行结果:

请输入一个浮点数:3.14
你输入的浮点数是:3.14
  1. 读取布尔类型数据

我们可以使用 nextBoolean() 方法来读取一个布尔类型数据,如果输入的值不是 true 或 false,会抛出 InputMismatchException 异常。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个布尔值(true/false):");
boolean b = scanner.nextBoolean();
System.out.println("你输入的布尔值是:" + b);

上面的代码运行结果:

请输入一个布尔值(true/false):true
你输入的布尔值是:true
  1. 读取正则表达式

Scanner 还提供了一个 findInLine() 方法来读取正则表达式。该方法可以读取控制台输入中第一次出现的正则表达式,并返回一个匹配的字符串。

Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个正则表达式:");
String pattern = scanner.findInLine("\d+");
System.out.println("你输入的正则表达式匹配的字符串是:" + pattern);

上面的代码运行结果:

请输入一个正则表达式:Hello 123 World!
你输入的正则表达式匹配的字符串是:123

以上就是 Scanner 类的一些常用操作,希望对大家学习 Java 有所帮助。

以上就是Java中的Scanner操作详解的详细内容,更多请关注www.sxiaw.com其它相关文章!