さて、Perl の sprintf で、文字列の右側に 0 を補完するのはどうすればええんじゃろうねえ?
例えば、
して、この値を sprintf で編集すると、
なら、00000000000112200225 となっちゃうんだけど、実際は、後ろに 0 を補完して、11220022500000000000 としたいのよ。
試しに sprintf("%-020d", $d) ってやってみたけど、これじゃあ何も補完されないだけだった。
後ろにスペースを埋めるというやり方はあるので、先にスペースを埋めてからそれを正規表現で 0 に変換しちゃえばいいんだが、こういうやり方しかないんかいのお?
とすれば、出力結果は 11220022500000000000 だ。
これをね、sprintf 一発でやりたいんだけどなあ。
識者の方、ぜひご教示ください。
Tweet
例えば、
$d = '112200225';
して、この値を sprintf で編集すると、
$d = sprintf("%020d", $d);
なら、00000000000112200225 となっちゃうんだけど、実際は、後ろに 0 を補完して、11220022500000000000 としたいのよ。
試しに sprintf("%-020d", $d) ってやってみたけど、これじゃあ何も補完されないだけだった。
後ろにスペースを埋めるというやり方はあるので、先にスペースを埋めてからそれを正規表現で 0 に変換しちゃえばいいんだが、こういうやり方しかないんかいのお?
$d = '112200225';
$d = sprintf("%-20s", $d);
$d =~ s/\s/0/g;
print "$d\n";
とすれば、出力結果は 11220022500000000000 だ。
これをね、sprintf 一発でやりたいんだけどなあ。
識者の方、ぜひご教示ください。
コメントする