如何知道 Java 扫描器定界符在哪里停止?

How To Know Where Java Scanner Delimiter Left Off?

假设我正在一个字符一个字符地检查这个字符串:Jason Derulo "In My Head" charted.

我使用 Scanner Delimiter 提取 In My Head(用双引号引起来)。

有没有简单的方法来获取分隔符停止的位置?

换句话说,我想轻松地知道我离开的最后一个地方是 string.charat(25) 处的字符,即字符串中的第 25 个字符。

Scanner 没有此功能。

您可以将字符串的长度添加到某个 int 变量中,然后用它来检查处理的最后一个字母:

Scanner scanner = new Scanner(System.in);
StringBuilder builder = new StringBuilder();
int tracker = 0;

while(scanner.hasNext()) {
    String next = scanner.next();
    builder.append(next);
    tracker += next.length();

    System.out.println("The last letter handled was "+ builder.chatAt(tracker - 1));
}