digitToIntOrNull所在位置是kotlin.text.digitToIntOrNull,其相關用法介紹如下。

用法一

fun Char.digitToIntOrNull(): Int?

返回此 Char 表示的十進製數字的數值,如果此 Char 不是有效的十進製數字,則返回 null

如果 Char 的 isDigit 為真,則認為 Char 表示十進製數字。在這種情況下,將返回字符的 Unicode 十進製數字值。

例子:

import java.util.*
import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
println('5'.digitToIntOrNull()) // 5
println('3'.digitToIntOrNull(radix = 8)) // 3
println('A'.digitToIntOrNull(radix = 16)) // 10
println('K'.digitToIntOrNull(radix = 36)) // 20

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

輸出:

5
3
10
20
null
null
null
null

用法二

fun Char.digitToIntOrNull(radix: Int): Int?

返回此 Char 在指定 radix 中表示的數字的數值,如果此 Char 不是指定 radix 中的有效數字,則返回 null。如果 radix 不在 2..36 範圍內,則引發異常。

如果以下至少一項為真,則認為 Char 表示指定 radix 中的數字:

  • isDigit 是 Char 的 true 並且字符的 Unicode 十進製數字值小於指定的 radix 。在這種情況下,返回十進製數字值。
  • Char 是大寫拉丁字母 'A' 到 'Z' 之一,其 code 小於 radix + 'A'.code - 10 。在這種情況下,返回this.code - 'A'.code + 10
  • Char 是小寫拉丁字母 'a' 到 'z' 之一,其 code 小於 radix + 'a'.code - 10 。在這種情況下,返回this.code - 'a'.code + 10
  • Char 是全角拉丁大寫字母 '\uFF21' 到 '\uFF3A' 之一,其 code 小於 radix + 0xFF21 - 10 。在這種情況下,返回this.code - 0xFF21 + 10
  • Char 是全角拉丁小寫字母 '\uFF41' 到 '\uFF5A' 之一,其 code 小於 radix + 0xFF41 - 10 。在這種情況下,返回this.code - 0xFF41 + 10

例子:

import java.util.*
import kotlin.test.*

fun main(args: Array<String>) {
//sampleStart
println('5'.digitToIntOrNull()) // 5
println('3'.digitToIntOrNull(radix = 8)) // 3
println('A'.digitToIntOrNull(radix = 16)) // 10
println('K'.digitToIntOrNull(radix = 36)) // 20

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

輸出:

5
3
10
20
null
null
null
null