Javaの文字列でReplaceAllは、文字列の前にオーバーフローを置き換えるために、終了していません。

ポール・送信者:

私はダッシュで文字列に撮りたいです。ダッシュ内の文字のグループがあります。文字のその数はK.私はその後、私が使用していますきれいな文字列を持っているので、開始するには、ダッシュを取っている整数で指定されています

replaceAll("(.{" + K + "})", "$0-")

すべてのKの文字 - 挿入します。私は「オーバーフロー」(以前のすべての文字が文字列ではない最後の正面に置くことをグループ分けした後に残った文字を)したいです。

たとえば、私は、8文字の文字列を持っています:

String s = "1-23456-78";
String newS = s.replace("-", "");

ニュースは今12345678です

int K = 3; 
String newNewS = newS.replaceAll("(.{" + K + "})", "$0-").trim();

NEWNEWSは123-456-78です

私はそれが12-345-678になりたいです。とにかくでReplaceAllメソッドを逆転またはこれを行うには別の方法はありますか?

sp00m:

あなたは先読み(で遊ぶことができるデモ):

.{3}(?=(?:.{3})*$)

と置換する:

-$0

あなたの場合:

"12345678".replaceAll(".{" + K + "}(?=(?:.{" + K + "})*$)", "-$0")

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=209374&siteId=1