📜  Java中的 Scanner delimiter() 方法及示例(1)

📅  最后修改于: 2023-12-03 15:01:56.657000             🧑  作者: Mango

Java中的 Scanner delimiter() 方法及示例

在 Java 中,Scanner 是常见的用于读取文本输入的类,它提供了许多方法来获取和处理输入。其中一个方法是 delimiter(),它用于设置 Scanner 对象所使用的分隔符。在本文中,我们将讨论 delimiter() 方法的用法和示例。

delimiter() 方法的语法

Scanner 类的 delimiter() 方法有两个重载形式,具体如下:

public Scanner delimiter();

public Scanner delimiter(Pattern pattern);

第一个重载形式不带参数,用于返回当前 Scanner 对象的分隔符。第二个重载形式接受一个正则表达式模式作为参数,并用指定的模式设置 Scanner 对象的分隔符。

delimiter() 方法的示例

下面是一个使用 delimiter() 方法的简单示例。假设我们有一个包含空格和逗号分隔符的字符串,我们想要将其拆分成多个部分并分别处理它们。可以通过如下代码实现:

import java.util.Scanner;
import java.util.regex.Pattern;

public class DelimiterExample {
    public static void main(String[] args) {
        String input = "Java is, a programming language.";
        Scanner scanner = new Scanner(input);
        scanner.useDelimiter("\\s*,\\s*|\\s+");

        while(scanner.hasNext()) {
            System.out.println(scanner.next());
        }
        scanner.close();
    }
}

在这个示例中,我们首先创建了一个字符串 input,它包含空格和逗号分隔符。然后我们创建了一个 Scanner 对象,并通过 useDelimiter() 方法设置了分隔符的正则表达式模式。这里我们设置了两个模式:

  • \s*,\s*:表示一个或多个空格,紧随着一个逗号,紧随着一个或多个空格。
  • \s+:表示一个或多个空格。

这样设置后,Scanner 对象会根据这些模式将输入字符串分成多个部分,并在每次调用 next() 方法时返回一个部分。在 while 循环中,我们不断调用 hasNext() 方法来检查是否还有下一个部分,如果有则使用 next() 方法获取下一个部分,并将其打印出来。

运行这个示例,输出如下:

Java
is
a
programming
language.

可以看到,我们成功地将一个包含多个分隔符的字符串拆分成了多个部分,并每次只处理一个部分。

Markdown 代码片段
# Java中的 Scanner delimiter() 方法及示例

在 Java 中,Scanner 是常见的用于读取文本输入的类,它提供了许多方法来获取和处理输入。其中一个方法是 delimiter(),它用于设置 Scanner 对象所使用的分隔符。在本文中,我们将讨论 delimiter() 方法的用法和示例。

## delimiter() 方法的语法

Scanner 类的 delimiter() 方法有两个重载形式,具体如下:

```java
public Scanner delimiter();

public Scanner delimiter(Pattern pattern);

第一个重载形式不带参数,用于返回当前 Scanner 对象的分隔符。第二个重载形式接受一个正则表达式模式作为参数,并用指定的模式设置 Scanner 对象的分隔符。

delimiter() 方法的示例

下面是一个使用 delimiter() 方法的简单示例。假设我们有一个包含空格和逗号分隔符的字符串,我们想要将其拆分成多个部分并分别处理它们。可以通过如下代码实现:

import java.util.Scanner;
import java.util.regex.Pattern;

public class DelimiterExample {
    public static void main(String[] args) {
        String input = "Java is, a programming language.";
        Scanner scanner = new Scanner(input);
        scanner.useDelimiter("\\s*,\\s*|\\s+");

        while(scanner.hasNext()) {
            System.out.println(scanner.next());
        }
        scanner.close();
    }
}

在这个示例中,我们首先创建了一个字符串 input,它包含空格和逗号分隔符。然后我们创建了一个 Scanner 对象,并通过 useDelimiter() 方法设置了分隔符的正则表达式模式。这里我们设置了两个模式:

  • \s*,\s*:表示一个或多个空格,紧随着一个逗号,紧随着一个或多个空格。
  • \s+:表示一个或多个空格。

这样设置后,Scanner 对象会根据这些模式将输入字符串分成多个部分,并在每次调用 next() 方法时返回一个部分。在 while 循环中,我们不断调用 hasNext() 方法来检查是否还有下一个部分,如果有则使用 next() 方法获取下一个部分,并将其打印出来。

运行这个示例,输出如下:

Java
is
a
programming
language.

可以看到,我们成功地将一个包含多个分隔符的字符串拆分成了多个部分,并每次只处理一个部分。