gpt4 book ai didi

java - 从文件中读取字符串时,String.split 不会用\n 进行分割

转载 作者:行者123 更新时间:2023-11-30 07:15:40 25 4
gpt4 key购买 nike

这是在 Windows 上。当我在类中创建的字符串中有\n 时它有效,但当从文件中读取相同的字符串时它不起作用。

String[] string = str.split(" \\n| |\\n|\n");

文件中的字符串示例:

This is a test.\nColor: [blue yellow black green red]\nDates:

如果我用来从文件中读取的代码有任何相关性:

public static String getStringArray(String filename) {
try {
return IOUtils.toString(new FileInputStream(filename), Charset.defaultCharset());
} catch(IOException ex) {
Logger.getLogger(File.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}

这是使用 org.apache.commons.io.IOUtils。

最佳答案

首先,名为 getStringArray 的方法应返回 String[],而不是 String

此外,正则表达式“(\\n|\r?\n)”符合您的期望(根据我的理解)。

它通过文字“\n”或换行符来断行。

public static String[] getStringArray(String filename)
{
try
{
String content = IOUtils.toString(new FileInputStream(filename), Charset.defaultCharset());
String[] lines = content.split("(\\\\n|\\r?\\n)");
return lines;
} catch (IOException ex)
{
Logger.getLogger(File.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}

或者,以简化的方式:

public static String[] getStringArray(String filename)
{
try { return IOUtils.toString(new FileInputStream(filename), Charset.defaultCharset()).split("(\\\\n|\\r?\\n)"); }
catch (IOException ex) { Logger.getLogger(File.class.getName()).log(Level.SEVERE, null, ex); }
return null;
}

如果您迭代返回的数组(使用示例字符串),您将得到:

This is a test.

Color: [blue yellow black green red]

Dates:

关于java - 从文件中读取字符串时,String.split 不会用\n 进行分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38445387/

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