我嘗試使用下面的代碼來標記文本文件:令牌不能構建正確
String fileContent = "";
String fileContentTokens[];
try{
fileContent = new Scanner(new File(fname)).useDelimiter("\\Z").next();
} catch(Exception ex) {
System.out.println(ex.getMessage());
}
fileContent = fileContent.replaceAll("\\s*([,.?!\"'()-:*;])\\s*", " $1 ");
//System.out.println(fileContent);
fileContentTokens = fileContent.split(" ");
的問題是,該令牌不形成正確的,我的意思是,有些話還是得附有他們一些語錄仍然有撇號。上面的代碼應該在每個標點符號之間留有空白,所以它不會附加到它自己的單詞上。例如:「這很酷」應該是「這很酷」。但由於某種原因,這並不是那樣做的。這只是爲了一些不是全部的話而做的。
我沒有把它打印出來,它的存在在的意見,那就是我怎麼知道有問題 – Haseeb
你的正則表達式爲我工作。請給出更多的背景和例子。 – SergeyS
這是我所做的改變,但同樣的事情發生:fileContent = fileContent.replaceAll(「\\ s *([,。?!\'() - :*;])\\ s *」,「 $ 1「); fileContent = Matcher.quoteReplacement(fileContent); System.out.println(fileContent); – Haseeb