使用 patterns/delimiter 从 Scanner 获取字符串

using patterns/delimiter to get String from Scanner

我有一个 .txt 文件,其中的信息排序为

信息字段;信息字段;信息字段;信息字段等。所有字段都是字符串。

如何创建获取下一个信息字段的方法?

更多信息:

我使用“;”从 Microsoft Access 中导出了 .txt 文件作为分隔符。如果我的 Scanner 名为 sc,我该如何执行 sc.nextField() 类型的方法?我最初做的是用 while 循环遍历每个带有 sc.next() 的单词,并将单词添加到字符串中,直到遇到“;”但该方法忽略了我在字段中的新行。

private static String grabField(Scanner sc) {

        String wordInFloat;
        String wordsToPass = "";

        while (true) {
            wordInFloat = sc.next();
            if (wordInFloat.endsWith(";"))
                break;
            else
                wordsToPass += wordInFloat + " ";
        }
        return wordsToPass;
    }

您可以使用内置函数 sc.useDelimiter(";") 然后进入 while 循环来提取信息,例如:

while (sc.hasNext()) {
wordsToPass += sc.next(); // edited to change sc.nextLine() to sc.next()
}

旁注:如果您想从字符串中删除任何前导和尾随 space,在将其添加到 wordsToPass 之前,您可以使用类似 sc.nextLine().trim()

编辑:我的回答不太正确,请使用 sc.next() 而不是 sc.nextLine()