所以,我想要做的是編譯一個單詞列表,沒有重複出8個單獨的字典單詞列表。一些字典中有標點符號來區分單詞。以下是我對與標點刪除有關的內容。我已經嘗試了幾種不同的解決方案,我已經在堆棧溢出中找到了有關正則表達式的問題,以及我在代碼中留下的問題。出於某種原因,他們都不會從源詞典中刪除標點符號。有人能告訴我我在這裏做錯了什麼,可能如何解決?我很茫然,有一位同事檢查了一下,他說這也應該起作用。刪除標點符號在Java中無法使用字符串替換
int i = 1;
boolean checker = true;
Scanner inputWords;
PrintWriter writer = new PrintWriter(
"/home/htarbox/Desktop/fullDictionary.txt");
String comparison, punctReplacer;
ArrayList<String> compilation = new ArrayList<String>();
while (i <9)
{
inputWords = new Scanner(new File("/home/htarbox/Desktop/"+i+".txt"));
while(inputWords.hasNext())
{
punctReplacer = inputWords.next();
punctReplacer.replaceAll("[;.:\"()!?\\t\\n]", "");
punctReplacer.replaceAll(",", "");
punctReplacer.replaceAll("\u201C", "");
punctReplacer.replaceAll("\u201D", "");
punctReplacer.replaceAll("’", "'");
System.out.println(punctReplacer);
compilation.add(punctReplacer);
}
}
inputWords.close();
}
i = 0;
字符串是不可變的。閱讀你使用的方法的javadoc。 –
我知道字符串是不可變的,然而,從我理解的替換函數應該重新創建整個字符串。 –
你必須這樣做:'punctReplacer = punctReplacer.replaceAll(...);',因爲函數返回一個新的字符串。 – MicSim