2015年4月9日 星期四

【筆記】在Java中去除字串的空白字元(字串去空白)

Java若只是要去除字串前後的空白,最簡單的方式就是呼叫String類別中trim這個方法:
String input = " Hello World ";
input = input.trim();
System.out.println(input);
但若是字串中的空白字元呢?

有用Java處理過字串的人,都應該有使用String類別中replaceAll這個方法,來替換字串中的某些字元,其實去仔細看它的API文件後,可以看到傳入這個方法的第一個參數是一個正規表示式,所以可以用正規表示式的來尋找要替換的部份。

所以若在要在 Java程式中把所有的空白字元,包含\t\n\x0B\f\r或空格等空白字元去除,比如現在有個字串如下:
String oldString = " Hello\t\tHello\r\nWorld";
System.out.println(oldString);
則輸出結果為:
  Hello      Hello
World
可以使用如下的正規表示式把上列字串中的空白字元去掉:
String newString = oldString.replaceAll("\\s+", "");
System.out.println(newString);
則輸出結果為:
HelloHelloWorld
而再次看到文件中的說明,其實上列replaceAll這個方法的結果,就跟下列方式相同:
String oldString = " Hello\t\tHello\r\nWorld";
String newString = Pattern.compile("\\s+").matcher(oldString)
                       .replaceAll("");
System.out.println(newString);

沒有留言: