かわばんが

エンジニアの雑記

ウェブアプリケーションエンジニア java/spring/awsとか

文字列置換。複数の対象をそれぞれの文字で置き換える。

テキスト内のURLをURLnで置き換えたかった。 テキストにURLはいくつあるか不明で0の場合もあり。そして置換する文字列のnは1から始まる自然数でインクリメントする。

https://~ → URL1
https://~ → URL2

という感じ。

        // テキストから正規表現使ってURLを抽出した(省略)
        List<String> urlList = XXX;


        int i = 1;
        for (String url : urlList) {
            text = text.replce(url, String.format("URL%d", i);
            i ++;
        }

        return text;

初めtext.replce(url, String.format("URL%d", i)を自身に代入してなくて(text =がなかった)、文字列変わらなくて悩んだ。バカみたいだ。

今回は使わなかったけれど、置き換えたい文字列が複数あるような場合はStringUtils.replaceEachなるものもあるみたい。 初めて知った。 これ真似しようかなと思ったけど、ぱっと見複雑で何してるか分かりずらいとやだったのでやめました。でも便利そう。

qiita.com

あと正規表現は一生苦手。