本文方法及代码示例基于Kotlin 2.1.20 Released
digitToIntOrNull
所在包 kotlin.text.digitToIntOrNull
,其相关用法介绍如下:
用法一
kotlin
fun Char.digitToIntOrNull(): Int?
-
返回此 Char 表示的十进制数字的数值,如果此 Char 不是有效的十进制数字,则返回
null
。 -
如果 Char 的 isDigit 为真,则认为 Char 表示十进制数字。在这种情况下,将返回字符的 Unicode 十进制数字值。
用法二
kotlin
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
。
- isDigit是 Char 的
示例代码:
kotlin
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