gpt4 book ai didi

java - 正则表达式和换行符

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

我正在尝试将随机file.txt划分为String[]。该文本来自 Gutenberg.org,并且有很多新行。

示例:

The Project Gutenberg EBook of Lincoln Letters, by Abraham Lincoln

This eBook is for the use of anyone anywhere at no cost and with almost no restrictions whatsoever. You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org

Title: Lincoln Letters

每个单词的输出都是正确的,但对于段落结尾和段落开头的单词则不然。

例如,“Lincolnhis”是“Lincoln”和“This”的组合,但被视为一个单词。相反,我想要“林肯”和“这个”。

token = word.split("\\s|\\.|\\,"); 这是我用来分割文本文件的正则表达式。请帮忙。

这是我用来输入文本文件的代码:

    FileReader fr = new FileReader("C:\\Users\\Petr Holoubek\\Desktop\\hello world.txt");
BufferedReader br = new BufferedReader(fr);

String[] tokens;
String temp;
int i;

i = 0;
temp = "";
while((i=br.read()) != -1) {
temp = temp + br.readLine();
}

这是实际的标记化:

public String[] tokenize(String word){
//divides the input by non-char symbol and
//puts tokens into state hashmap as keys
String[] token;

token = word.split("\\s|\\.|\\,");
return token;
}

非常感谢您的帮助!

最佳答案

您可能正在使用 BufferedReader.readLine 读取文件,这会丢弃分隔一行与下一行的换行符,然后连接这些字符串,从而将每一行的末尾粘合到下一行的开头。

你可能正在做这样的事情:

String str = "";
while(true) {
String next = bufferedReader.readline();
if(next == null) break;
str += next;
}

不要使用readline,使用read(char[] cbuf, int off, int len)

关于java - 正则表达式和换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42662459/

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