我想剛剛擺脫重複的連續字從一個文本文件,並有人提到,我可以做這樣的事情:模式,匹配在Java中,正則表達式的幫助
Pattern p = Pattern.compile("(\\w+) \\1");
StringBuilder sb = new StringBuilder(1000);
int i = 0;
for (String s : lineOfWords) { // line of words is a List<String> that has each line read in from txt file
Matcher m = p.matcher(s.toUpperCase());
// and then do something like
while (m.find()) {
// do something here
}
我試圖尋找查看是否可以創建一個新的字符串,或刪除匹配項所在的項目,但我不確定在閱讀文檔後它是如何工作的。例如,作爲一個測試案例,看看它是如何工作的,我所做的:
if (m.find()) {
System.out.println(s.substring(i, m.end()));
}
若要在文本文件:This is an example example test test test.
爲什麼我的輸出This is
?
編輯:
,如果我有一個AraryList lineOfWords從線.txt文件中讀取每一行,然後我創建一個新的ArrayList來保存修改後的字符串。例如
List<String> newString = new ArrayList<String>();
for (String s : lineOfWords {
s = s.replaceAll(code from Kobi here);
newString.add(s);
}
但它不會給我新的,但原來的s。是因爲淺而深的複製?
第二個片段中的「i」是什麼?在你顯示的代碼中沒有任何其他地方的痕跡... – 2010-08-04 04:48:24
對不起,我等於0,將它添加回來。 – Crystal 2010-08-04 04:50:20
嗨,水晶。最好在這種情況下提出一個新問題,這實際上是另一個問題的另一個問題。 (在相關說明中 - 當我學習Java時,它沒有泛型,也沒有foreach循環':P') – Kobi 2010-08-06 09:26:39