• ベストアンサー

置換する文字にマッチした文字の一部を使うには

長い文字列があったとして、それを10文字おきにスペースを1つずつ入れたいとします。 例えばPerlならば、以下のような処理で済むわけですが、 $s =~ s/(¥w{,10})/$1 /g; Javaの正規表現を使うには、どのように記述すれば良いでしょうか。 replaceAll()などで実装できるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

処理速度的に早いのは charの配列に変換して StringBuilderにつめなおす方法ね。 正規表現でやるならMatcherクラス周りでいろいろできるけど 実装はめんどくさいし速度も前者に劣るわ。 間と取るならString#splitで分割して StringBuilderにつめなおしね。 Javaにはjoinがないので。

JF1Msf
質問者

お礼

MatcherクラスのappendReplacement()やappendTail()が使えそうですが、確かにめんどうです。 ありがとうございました。

その他の回答 (1)

回答No.2

replaceAll("(.{10})", "$1 "); 処理速度はどうなんだろうね。

JF1Msf
質問者

補足

Javaで$1が使えるんですか?

関連するQ&A