21xrx.com
2024-12-23 00:18:13 Monday
登录
文章检索 我的文章 写文章
Java中Scanner常用的几种用法详解
2023-06-15 00:59:47 深夜i     --     --
Scanner类 输入输出 高级用法 正则表达式 定界符 文件读取

在Java语言编程过程中,输入输出是非常基础且重要的一个方面。Scanner是Java中用来获取输入的一种类,使用非常方便。在本文中,我们将详细讨论Scanner的几个常用用法。

一、Scanner的基本用法

Scanner的基本用法是使用Scanner类的next()、nextInt()和nextLine()方法获取输入,这三个方法分别可以获取下一个字符串、下一个整数和输入行的下一行字符串。具体使用方法和注意事项请参考下面代码:


import java.util.Scanner;

public class ScannerTest {

  public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    System.out.println("请输入一个字符串:");

    String s = input.next();

    System.out.println("您输入的字符串为:" + s);

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

    int i = input.nextInt();

    System.out.println("您输入的整数为:" + i);

    System.out.println("请输入一句话:");

    String line = input.nextLine();

    System.out.println("您输入的一句话为:" + line);

  }

}

注意:在使用Scanner类之前要先创建Scanner对象。

二、Scanner的高级用法

Scanner还有一些高级用法,包括使用正则表达方式获取输入、使用定界符和从文件中读取输入。下面是具体使用方法和注意事项:

1.使用正则表达方式获取输入

Scanner类可以使用正则表达式进行匹配和分割输入。使用Scanner类的useDelimiter(String pattern)方法指定输入分割的定界符, 如果不指定,会使用默认的定界符(空格、Tab和回车)。具体使用可以参考下面的代码:


import java.util.Scanner;

public class ScannerTest {

  public static void main(String[] args) {

    Scanner input = new Scanner(System.in);

    input.useDelimiter(",");

    while (input.hasNext()) {

      System.out.println(input.next());

    } 

  }

}

运行上面的代码,输入1,2,3后,会输出:


1

2

3

2.使用定界符获取日期和时间

Scanner类还可以结合定界符获取日期和时间,具体使用方法如下:


import java.util.Scanner;

import java.util.regex.MatchResult;

public class ScannerTest {

  public static void main(String[] args) {

    String input = "12-10-2021 2:15 pm";

    Scanner scanner = new Scanner(input);

    scanner.findInLine("(\\d{2})-(\\d{2})-(\\d{4}) (\\d2):(\\d{2}) (am|pm)");

    MatchResult match = scanner.match();

    System.out.println("Year: " + match.group(3));

    System.out.println("Month: " + match.group(2));

    System.out.println("Day: " + match.group(1));

    System.out.println("Hour: " + (match.group(4).equals("am") ? match.group(4) : (Integer.parseInt(match.group(4)) + 12)));

    System.out.println("Minute: " + match.group(5));

  }

}

运行上面的代码,输出:


Year: 2021

Month: 10

Day: 12

Hour: 14

Minute: 15

3.从文件中读取输入

Scanner类还可以从文件中读取输入,具体使用方法如下:


import java.util.*;

import java.io.*;

public class ScannerTest {

  public static void main(String[] args) throws Exception {

    Scanner input = new Scanner(new File("test.txt"));

    while (input.hasNext()) {

      System.out.println(input.nextLine());

    } 

  }

}

注意:在使用Scanner类从文件中读取输入之前,需要先在代码中使用throws Exception声明可能抛出的异常。

三、总结

本文介绍了Scanner类在Java中的常用用法,包括基本用法和高级用法。通过本文的学习,您可以更好地掌握Scanner的使用方法,方便您在Java编程中获取输入。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复