A Day In The Life

とあるプログラマの備忘録

replaceAllに気をつけろ。

StringクラスreplaceAllとreplaceFirstメソッドの引数は正規表現で指定しないと予期せぬ結果が返ってくることがある。

javadocには

replaceAll(String regex, String replacement)

指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。
と書いてある。

正規表現で指定するので'.'とか'*'って文字そのものを変換したい時にはエスケープする必要がある。

str = str.replaceAll("\.jsp", "")

こんな感じ。

気をつけましょう。