Int.toString în Kotlin

Intervale și conversii de numere Kotlin 1.0 (toString(radix): 1.1)

toString transformă un număr în text (opțional în altă bază, ca 2 sau 16); toChar dă caracterul cu acel cod.

Sintaxă
fun Int.toString(): String
fun Int.toString(radix: Int): String
fun Int.toChar(): Char

Ce face Int.toString

42.toString() returnează textul "42", pe care poți aplica funcții de text precum padStart, length sau reversed. Cu argumentul radix obții numărul scris în altă bază: 255.toString(2) este "11111111", iar 255.toString(16) este "ff". Inversul este "ff".toInt(16).

65.toChar() returnează caracterul cu codul Unicode 65, adică 'A'. Este inversul lui 'A'.code. Pentru alte tipuri numerice decât Int, toChar() este depreciat; convertește întâi la Int sau folosește Char(cod).

Parametri

Parametru Descriere
radix Baza în care se scrie numărul (2–36). Implicit 10.

Ce returnează

toString: un String. toChar: un Char.

Exemple

Exemplul 1: Numere în diferite baze

Același număr scris în baza 10, 2, 8 și 16.

fun main() {
    val n = 2025
    println(n.toString())
    println(n.toString(2))
    println(n.toString(8))
    println(n.toString(16))
    println("7e9".toInt(16))
}

Rezultat

2025
11111101001
3751
7e9
2025

Exemplul 2: Cifrele unui număr prin text

Transformăm numărul în text ca să-i aflăm numărul de cifre și să-l completăm cu zerouri.

fun main() {
    val cod = 427
    val text = cod.toString()
    println("Cifre: ${text.length}")
    println("Cod complet: ${text.padStart(6, '0')}")
    println("Prima cifră: ${text.first()}")
}

Rezultat

Cifre: 3
Cod complet: 000427
Prima cifră: 4

Exemplul 3: Litere din coduri cu toChar

Codurile 65–70 sunt literele A–F; adunând 32 obținem literele mici.

fun main() {
    val litere = (65..70).map { it.toChar() }
    println(litere)
    println((65 + 32).toChar())
    println(('A'.code + 2).toChar())
}

Rezultat

[A, B, C, D, E, F]
a
C

Greșeli frecvente

  • Aștepți ca 7.toChar() să dea caracterul '7'. Dă caracterul cu codul 7 (un caracter de control); pentru cifră folosește 7.digitToChar() sau '0' + 7.
  • Scrii "" + numar pentru conversie. Merge, dar numar.toString() sau un template "$numar" sunt mai clare.

Comenzi înrudite

  • String.toInt: Transformă un text în număr întreg; toInt aruncă excepție la text invalid, toIntOrNull returnează null.
  • Char.digitToInt: digitToInt transformă caracterul ‘7’ în numărul 7; code dă codul Unicode al caracterului (‘A’.code este 65).
  • String.padStart: Completează textul la o lungime dată, adăugând un caracter la început (padStart) sau la final (padEnd).
  • Int.countOneBits: Numără câți biți de 1 are un număr în scrierea binară (de exemplu 7 = 111 are 3).