Big*_*air 4 java java.util.scanner
我正在尝试使用a Scanner和a 从输入中读取指定的文件格式Pattern,如下所示:
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);
Run Code Online (Sandbox Code Playgroud)
但是当我1 x 1用作输入时,它会抛出NoSuchElementException
模式\\d+x\\d+,输入1x1它可以工作,但模式中没有空格,我做错了吗?
文件说:
扫描程序使用分隔符模式将其输入分解为标记,分隔符模式默认匹配空格.然后可以使用各种下一种方法将得到的标记转换成不同类型的值.
它还说:
public String next(Pattern pattern)
如果匹配指定的模式,则返回下一个标记.
因此,您的代码会读取字符直到下一个空格,如果它们与您的模式匹配,则返回它们.情况并非如此,因为您的模式匹配包含空格的字符串,而令牌不能包含空格.
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |