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

using patterns/delimiter to get String from Scanner

提问人:David Tejuosho 提问时间:11/26/2021 更新时间:11/26/2021 访问量:89

问:

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

信息领域;信息领域;信息领域;信息字段等。所有字段均为字符串。

如何制作获取下一个信息字段的方法?

更多信息:

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

private static String grabField(Scanner sc) {

        String wordInFloat;
        String wordsToPass = "";

        while (true) {
            wordInFloat = sc.next();
            if (wordInFloat.endsWith(";"))
                break;
            else
                wordsToPass += wordInFloat + " ";
        }
        return wordsToPass;
    }
Java 正则表达式 java.util.scanner

评论


答:

1赞 Emad Ali 11/26/2021 #1

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

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

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

编辑:我的答案不太正确,用代替.sc.next()sc.nextLine()