gpt4 book ai didi

java - Android - 在 String 中的换行符处拆分? (段落)

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:17 30 4
gpt4 key购买 nike

我目前正在从包含一些段落的文本文件 (.txt) 中检索一些信息。当我从文本文件中检索字符串时,我想将其拆分,以便每个段落都在一个字符串对象中。

这是我从文本文件中得到的文本: http://www.carlowweather.com/plaintext.txt

我尝试使用换行符和回车符来拆分字符串,但似乎都不起作用,请参阅下面的代码:

 int pCount=0;
public void parseData(String data){
String regex = "(\\n)";
String split[] = data.split(regex);
for(int i = 0; i<split.length; i++){
Log.e("e", pCount + " " + split[i]);
pCount ++;
}
}

我也尝试过“\r”和我通过网络搜索找到的各种组合,但似乎都无法在 Android 上使用此文本文件,我猜该文件不包含换行符或回车符?但只是空行?

将段落拆分为 String 对象的最佳方法是什么?

最佳答案

我认为最简单的方法是使用 Scanner .

Scanner sc = new Scanner(new File("donal.txt"), "UTF-8");
sc.useDelimiter("\n[ \t]*\n");

List<String> result = new ArrayList<String>();
int lineCount = 0;
while (sc.hasNext())
{
String line = sc.next();
System.out.printf("%n%d:%n%s%n", ++lineCount, line);
result.add(line);
}
System.out.printf("%n%d paragraphs found.%n", lineCount);

第一段和最后一段实际上是页眉和页脚;我不知道你想对这些做什么。

为了可读性,我假设行分隔符始终是 Unix 风格的 \n,但为了安全起见,您应该允许使用 Windows 风格的 \r\n 和旧版 Mac 风格的 \r 也是如此。这将使正则表达式:

"(?:\r\n|[\r\n])[ \t]*(?:\r\n|[\r\n])

关于java - Android - 在 String 中的换行符处拆分? (段落),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9675359/

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