我想將隨機file.txt
分成String[]
。文本來自Gutenberg.org
並且有很多新的行。正則表達式和新行
例子:
林肯信件的古騰堡計劃電子書,由亞伯拉罕·林肯
本電子書是利用任何人的任何地方,在沒有成本和 幾乎沒有任何限制。您可以複製它,把它送人或 重新使用它下的古騰堡項目許可的範圍包括 本電子書或在線www.gutenberg.org
標題:林肯信件
的輸出對於每個單詞都是正確的,但對於結束段落和開始段落的單詞不是。
例如,「Lincoln」和「This」組合的「Lincolnhis」被視爲一個單詞。相反,我想擁有「林肯」和「這個」。
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;
}
非常感謝您的幫助!
我們展示你的代碼。如果Sean F是對的,並且你正在使用'BufferedReader#readLine',那就很好;該方法爲您處理結束行處理並將文本集合到一個String中。一個真正的努力和錯誤保護程序。如果您尚未使用它,請使用它。但它不會做任何事情。你必須在每行的末尾插入一個空格,除了你不應該寫的行之外。魔鬼然後將在細節。不要使用低級'read'。善待自己!爲了好,請告訴我們你的代碼。 –