How to convert an array of digits to a number in Kotlin

1 Answer

0 votes
// ------------------------------------------------------------
// digitsToNumberJoin
// Converts digits to a string, then parses it.
// Example: [1,2,3,4] → "1234" → 1234
// ------------------------------------------------------------
fun digitsToNumberJoin(digits: IntArray): Int {
    return digits.joinToString("").toInt()
}

// ------------------------------------------------------------
// digitsToNumberMath
// Pure mathematical folding (no string operations).
// ------------------------------------------------------------
fun digitsToNumberMath(digits: IntArray): Int {
    var n = 0
    for (d in digits) {
        n = n * 10 + d
    }
    return n
}

// ------------------------------------------------------------
// digitsToNumberFold
// Functional Kotlin style using fold().
// ------------------------------------------------------------
fun digitsToNumberFold(digits: IntArray): Int {
    return digits.fold(0) { acc, d -> acc * 10 + d }
}

fun main() {
    val digits = intArrayOf(4, 6, 3, 9, 1, 2)

    println("Using join(): ${digitsToNumberJoin(digits)}")
    println("Using math(): ${digitsToNumberMath(digits)}")
    println("Using fold(): ${digitsToNumberFold(digits)}")
}


/*
run:

Using join(): 463912
Using math(): 463912
Using fold(): 463912

*/

 



answered Jan 6, 2025 by avibootz
edited 4 days ago by avibootz
...