gpt4 book ai didi

java - 关于定界符的 Scanner.skip 文档

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:28:06 28 4
gpt4 key购买 nike

根据 the javadoc for java.util.Scanner.skip ,这个方法:

Skips input that matches the specified pattern, ignoring delimiters.

但我对“忽略定界符”这个短语的含义感到困惑,因为以下代码在 Eclipse 中使用 Java 7 会引发异常:

import java.util.Scanner;

public class Example
{

public static void main(String [] args)
{
Scanner sc = new Scanner("Hello World! Here 55");
String piece = sc.next();

sc.skip("World"); // Line A throws NoSuchElementException, vs.
sc.skip("\\sWorld"); // Line B works!
sc.findInLine("World"); // Line C works!
}
}

它似乎并没有在跳过时忽略定界符,如 A 行所示。但是 C 行似乎有效,即使其文档使用相同的“忽略定界符”短语。在这种情况下,我是否不清楚他们的“忽略定界符”概念,或者这是一个实际的错误?我错过了什么?

最佳答案

你遗漏了方法描述的下一句(强调我的):

This method will skip input if an anchored match of the specified pattern succeeds.

所以 Scanner 与其说是“忽略”分隔符,不如说是在不考虑分隔符的情况下简单地尝试匹配指定的正则表达式。换句话说,World 之前的空格不会被 skip() 视为分隔符,而只是它尝试匹配的输入的一部分。

关于java - 关于定界符的 Scanner.skip 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40292333/

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