gpt4 book ai didi

java - 对文本文件使用 useDelimiter()

转载 作者:行者123 更新时间:2023-11-30 07:56:38 24 4
gpt4 key购买 nike

我正在尝试使用 useDelimiters() 按特定分隔符而不是按每个新行分割文本文件。例如,在下面的代码中,我有一个文本文件输入,我想在句号处将其分成两个:

hellothere
stop.hereok
asdf

我的代码:

public static void main(String[] args) throws FileNotFoundException {
File text = new File("test.txt");
Scanner filein = new Scanner(text).useDelimiter("\\.");
System.out.println(filein.next());
System.out.println(filein.next());
}

我的输出:

hellothere
stop
hereok
asdf

预期输出:

hellotherestop
hereokasdf

有人知道这个问题吗?

最佳答案

如果您的文件包含文本

hellothere
stop.hereok
asdf

这意味着它包含代表行分隔符的字符(\n \r\r\n 取决于操作系统)。打印文本直到点分隔符也会打印这些行分隔符,这意味着首先

System.out.println(filein.next());

将打印

hellothere //<-here exists line separator character(s)
stop //and here was dot, or end of your text

如果您希望它打印不带行分隔符的 hellotherestop,您需要手动删除它们。

从 Java 8 开始,您可以使用添加到正则表达式引擎中的 \R 字符类,它表示诸如 \r\n \r 等分隔符其他。

System.out.println(filein.next().replaceAll("\\R",""));

如果您使用的是旧版本的 Java,您可以尝试使用 replaceAll("\r?\n|\r","")

关于java - 对文本文件使用 useDelimiter(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32587651/

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