質問を投稿する前に件名を多少調査しましたが、回答が見つかりませんでした。ここでDecimalFormat変数のグループサイズ
は私がやろうとしているものです:
入力:長い数7-8小数スペース(ノー画分)。
出力: "X XXXXXX X"(Xは数字)が存在する必要があります。
DecimalFormatSymbols group = new DecimalFormatSymbols();
group.setGroupingSeparator(' ');
DecimalFormat idFormat = new DecimalFormat("0,000000,0", group);
しかし、これは代わりに "0 1 2 3 4 5 6 7" のようなものを出力します:Sは、私が間違って何をやっている
例:私が試した何1234567 => 0 123456 7
?
EDIT:
DecimalFormatSymbols group = new DecimalFormatSymbols(); group.setGroupingSeparator(' '); group.setDecimalSeparator(' '); DecimalFormat idFormat = new DecimalFormat("0,000000.0", group);
とマニュアルを再読み込みから
が、私はDecimalFormatは、印刷への道を持っていないことに気づい:は私はこれを行う場合、私は必要なものを印刷することができます可変長グループ(私は幸運にも私は2だけ必要です - 私は小数部分を使うことができます)。しかし、これを「適切に」どうしたらいいですか?ここで正規表現を使用する/自分の関数を書くことは問題ないのですか、それともこれを行うライブラリがありますか?
EDIT2:
ちょうどキックのために、以下のことを行うための正規表現ベースの方法:)
Random random = new Random();
System.out.println(
String.valueOf(Math.round(random.nextDouble() * 1e8))
.replaceAll("(.*)(\\d{6})(\\d)$", "$1 $2 $3")
.replaceAll("^ ", "0 "));
ここでは正規表現があなたを助けるとは思わない - それらは解析用です。 AFAIK正規表現を使って10進数をフォーマットする方法はありません。 – Alex