gpt4 book ai didi

java - 与包含空格的模式一起使用时,扫描仪抛出 NoSuchElementException

转载 作者:搜寻专家 更新时间:2023-11-01 02:12:37 27 4
gpt4 key购买 nike

我正在尝试使用 ScannerPattern 从输入中读取指定的文件格式,如下所示:

Pattern p = Pattern.compile("\\d+\\sx\\s\\d+");
Scanner sc = new Scanner(System.in);
String input = "";
try {
input = sc.next(p);
} catch(NoSuchElementException ne) {
System.out.println("No such token");
}
sc.close();
System.out.println(input);

但是当我使用 1 x 1 作为输入时,它会抛出 NoSuchElementException
模式为 \\d+x\\d+ 并输入 1x1 它有效,但模式中没有空格,我做错了什么吗?

最佳答案

文档说:

A Scanner breaks its input into tokens using a delimiter pattern, which by default matches whitespace. The resulting tokens may then be converted into values of different types using the various next methods.

它还说:

public String next(Pattern pattern)

Returns the next token if it matches the specified pattern.

因此,您的代码读取字符直到下一个空格,如果它们与您的模式匹配则返回它们。情况并非如此,因为您的模式匹配包含空格的字符串,而 token 不能包含空格。

关于java - 与包含空格的模式一起使用时,扫描仪抛出 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15175538/

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