・replaeAll (置換したい文字列, 置き換える文字列)
・replaceFirst(置換したい文字列, 置き換える文字列)
のどちらかを使う。
違いは、最初に一致した部分だけか、一致した全部置換するか。
文字列の置換で一番頻度が高いのは、拡張子を変更する場合だと思う。
たとえば、"abc.dat"を"abc.txt"に変更する場合。
このときは単純に
String before = "abc.dat"; String after = before.replaceFirst("dat", "txt"); もしくは String after = before.replaceAll("dat", "txt");で問題ない。
しかし、"abcdat.dat"を"abcdat.txt"に変えたい場合は、上の方法だと
前者は "abctxt.dat"
後者は "abctxt.txt"
になってしまう。
そこで、".dat"を".txt"で置換すればいいが、これらのメソッドでは "."(ドット)は「任意の文字」というワイルドカードを意味してしまうので、エスケープしなければならない。
String before = "abc.dat"; String after = before.replaceFirst("\\.dat", "\\.txt"); もしくは String after = before.replaceAll("\\.dat", "\\.txt");
ちなみに、indexOf とかではワイルドカード扱いにならないのでエスケープはいらない。
0 件のコメント:
コメントを投稿