1. 移除多余的連續空格,只留下一個空格。
string.replaceAll("\\s{2,}", " ");
比較簡單\\s代表空格,使用貪婪表達式,如果是2個或多個空格,則替換為空格。
續,實踐中發現不工作原來\\s不光代表空格,是等於[ \t\n\x0B\f\r]
\\p{Blank}{2,} 則是A space or a tab
更簡單的 string.replaceAll("[ ]+", " ");
2. 移除空行
string.replaceAll("(?m)^\\s*$"+System.lineSeparator(), "");
?m開啟多行模式,^是行開始,\\s*代表任意個空格,$代表行結束,System.lineSeparator()則是為了跨平台的換行符。
故所有空行包括只含有空格的空行都會被替換為空字符串,即被移除。
考慮到不同平台的文件存在混用的情況,可以改進為 string..replaceAll("(?m)^\\s*$(\\n|\\r\\n)", "");
3. 替換字符串中的唯一子字符串,如果子字符串含有正則表達式字符,則替換不成功。
可以考慮自己寫一個方法實現。
public String removeString(String str, String old) {
int i = str.indexOf(old);
if (i >= 0) {
return str.substring(0, i) + str.substring(i + old.length());
}
return str;
}
————————————————
版權聲明:本文為CSDN博主「kaukiyou」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/kaukiyou/article/details/46829375