Ich möchte nur die Ziffern einer BigInt summieren. Ich kann
scala> "1 2 3".split(" ").map(_.toInt).sum
res23: Int = 6
Also habe ich versucht
scala> BigInt(123).toString().map(_.toInt).sum
res24: Int = 150
Das funktioniert nicht, weil die Zeichen auf ihre Unicode-Werte abgebildet werden.
Beide der folgenden Arbeit, aber gibt es einen eleganteren Weg als die Verwendung der statischen Java-Methode oder eine zusätzliche toString-Konvertierung?
BigInt(123).toString().map(Character.getNumericValue(_)).sum
BigInt(123).toString().map(_.toString.toInt).sum
(Ich habe es auch mit einer rekursiven Funktion gemacht, die Zeichenketten ganz umgeht, aber ich bin hier an einem knappen Einzeiler interessiert).