PHP には number_format
っていう超便利関数があって、数値を渡すと3桁区切りにしてくれる。
$x = 1234567890;
number_format($x);
// 1,234,567,890
Scala で同じようなことがしたいとき scala number_format
とかでググると以下のような例がたくさん出てくる。
val x = 1234567890
x.toString.reverse.sliding(3, 3).map(_.reverse).toSeq.reverse.mkString(",")
Scala っぽいコードで一瞬「スゲー!」って思いがちなんだけど Scala は Java の資産をそのまま使えるので実は下記のコードで実現できる。
val x = 1234567890
java.text.NumberFormat.getIntegerInstance.format(x)
追記
……とかドヤ顔で書いてたら、投稿の数分後にコメントでもっとシンプルな方法を教えていただいた。
val x = 1234567890
// コメントで教えてもらった方法
f"$x%,3d"
// Java っぽく書くと...
String.format("%,3d", x)
// Scala 2.9 までなら...
"%,3d".format(x)
Java の String.format(...)
だけで3桁区切りできることを初めて知った(恥)。