digitToInt

fun Char.digitToInt(): Int

Returns the numeric value of the decimal digit that this Char represents. Throws an exception if this Char is not a valid decimal digit.

A Char is considered to represent a decimal digit if isDigit is true for the Char. In this case, the Unicode decimal digit value of the character is returned.

Since Kotlin

1.5

Samples

import samples.*
import java.util.*
import kotlin.test.*
fun main() { 
   //sampleStart 
   assertPrints('5'.digitToInt(), "5")
assertPrints('3'.digitToInt(radix = 8), "3")
assertPrints('A'.digitToInt(radix = 16), "10")
assertPrints('k'.digitToInt(radix = 36), "20")

// radix argument should be in 2..36
assertFails { '0'.digitToInt(radix = 1) }
assertFails { '1'.digitToInt(radix = 100) }
// only 0 and 1 digits are valid for binary numbers
assertFails { '5'.digitToInt(radix = 2) }
// radix = 10 is used by default
assertFails { 'A'.digitToInt() }
// symbol '+' is not a digit in any radix
assertFails { '+'.digitToInt() }
// Only Latin letters are valid for digits greater than 9.
assertFails { 'β'.digitToInt(radix = 36) } 
   //sampleEnd
}

fun Char.digitToInt(radix: Int): Int

Returns the numeric value of the digit that this Char represents in the specified radix. Throws an exception if the radix is not in the range 2..36 or if this Char is not a valid digit in the specified radix.

A Char is considered to represent a digit in the specified radix if at least one of the following is true:

  • isDigit is true for the Char and the Unicode decimal digit value of the character is less than the specified radix. In this case the decimal digit value is returned.

  • The Char is one of the uppercase Latin letters 'A' through 'Z' and its code is less than radix + 'A'.code - 10. In this case, this.code - 'A'.code + 10 is returned.

  • The Char is one of the lowercase Latin letters 'a' through 'z' and its code is less than radix + 'a'.code - 10. In this case, this.code - 'a'.code + 10 is returned.

Since Kotlin

1.5

Samples

import samples.*
import java.util.*
import kotlin.test.*
fun main() { 
   //sampleStart 
   assertPrints('5'.digitToInt(), "5")
assertPrints('3'.digitToInt(radix = 8), "3")
assertPrints('A'.digitToInt(radix = 16), "10")
assertPrints('k'.digitToInt(radix = 36), "20")

// radix argument should be in 2..36
assertFails { '0'.digitToInt(radix = 1) }
assertFails { '1'.digitToInt(radix = 100) }
// only 0 and 1 digits are valid for binary numbers
assertFails { '5'.digitToInt(radix = 2) }
// radix = 10 is used by default
assertFails { 'A'.digitToInt() }
// symbol '+' is not a digit in any radix
assertFails { '+'.digitToInt() }
// Only Latin letters are valid for digits greater than 9.
assertFails { 'β'.digitToInt(radix = 36) } 
   //sampleEnd
}