gpt4 book ai didi

java - 如何获取 Java 中字符串的分割内容并将其保存到列表中?

转载 作者:太空宇宙 更新时间:2023-11-04 10:01:46 25 4
gpt4 key购买 nike

因此,我按行分隔符拆分字符串,但我还想保存使用的行分隔符,以便稍后将字符串重新组合在一起时使用。我怎样才能做到这一点?

String data = "Multi\n Line\r Text\n";
List<String> separators = new ArrayList<>();
String lines[] = data.split("\\r?\\n|\\r");
separators.add(???);

老实说,我不知道如何捕捉这一点。可以用 String.Split 吗?或者还有其他方法可以做到这一点吗?

我最初是从文件中获取字符串。有没有办法在将其转换为字符串之前以这种方式获取并保存行分隔符?

最佳答案

您可以使用 StringTokenizer 作为起点:

    String data = "Multi\n Line\r Text\n and now a two-char \r\nline separator";
StringTokenizer tokenizer = new StringTokenizer(data, "\n\r", true);
List<String> tokensAndDelimiters = new ArrayList<>();
while (tokenizer.hasMoreTokens()) {
tokensAndDelimiters.add(tokenizer.nextToken());
}
tokensAndDelimiters.replaceAll((token) -> token.replace("\n", "\\n").replace("\r", "\\r"));
System.out.println("tokensAndDelimiters = " + tokensAndDelimiters);

上述代码的输出为:

tokensAndDelimiters = [Multi, \n,  Line, \r,  Text, \n,  and now a two-char , \r, \n, line separator]

第三个 StringTokenizer 构造函数参数指示将分隔符作为标记返回。我只是替换行分隔符,以便它们清晰地打印出来。需要注意的一件事是,如果您有一个典型的 Windows 行分隔符(“\r\n”),则这将显示为两个标记,因为 StringTokenizer 仅处理单字符分隔符。

关于java - 如何获取 Java 中字符串的分割内容并将其保存到列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53367568/

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