gpt4 book ai didi

Java 的扫描器。如何匹配空格?

转载 作者:行者123 更新时间:2023-11-30 09:25:28 25 4
gpt4 key购买 nike

假设,我需要匹配包含空格的括号。

这是一个片段:

String input = "( ) ( ) ( )";
Pattern pattern = Pattern.compile("\\(\\s\\)");

Scanner scanner = new Scanner(input);
scanner.useDelimiter("\\n");
Matcher matcher = pattern.matcher(input);

System.out.println(scanner.hasNext(pattern)); // false
System.out.println(matcher.find()); // true
System.out.println(matcher.start(0) + " " + matcher.end(0)); // 0 3

Matcher 完全符合我的需要,但 Scanner 没有。

问题没有被正确提出。我的目的是用扫描器按顺序抓取字符串中的所有 ( ) 标记,因为匹配器似乎有不方便的 API 来完成这样的任务。我应该仔细阅读文档。

我需要的方法是:

scanner.findInLine(pattern);

最佳答案

检查来自 Scanner.hasNext(Pattern) 的 javadoc:

Returns true if the next complete token matches the specified pattern...

因此,由于您的模式不匹配整个标记 "( ) ( ) ( )",它将返回 false。

不过,Scanner 有一个名为 findInLine 的函数,可以执行您想要的操作:

scanner.findInLine(pattern); // returns "( )" or null if not found

(不过,这个方法可以跳过字符...)

关于Java 的扫描器。如何匹配空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com