Kotlin文本转指定数字及字符串转字符数组方法问询
嘿,这两个Kotlin的小问题我来给你捋清楚:
一、将文本转换为指定数字
Kotlin里把字符串转数字有几种常用方式,根据你要的数字类型(Int、Long、Double等)选择对应的方法就行:
- 基础转换(会抛出异常):如果确定文本是合法的数字格式,可以直接用
toInt()、toLong()、toDouble()这类方法:
val intStr = "456" val intNum = intStr.toInt() // 得到Int类型的456 val doubleStr = "3.14" val doubleNum = doubleStr.toDouble() // 得到Double类型的3.14
- 安全转换(避免异常):如果文本可能不是合法数字,推荐用
toIntOrNull()、toLongOrNull()这类方法,转换失败会返回null,你可以配合?:运算符设置默认值:
val invalidStr = "abc" val safeNum = invalidStr.toIntOrNull() ?: 0 // 转换失败时返回0
- 进制转换:如果要把其他进制的字符串转十进制数字,比如二进制、十六进制,可以给
toInt()传radix参数:
val binaryStr = "1101" val decimalNum = binaryStr.toInt(radix = 2) // 二进制转十进制,结果是13 val hexStr = "A3" val decimalHex = hexStr.toInt(radix = 16) // 十六进制转十进制,结果是163
二、将字符串转换为字符数组(并格式化输出)
你需要的是把" Hello "转成[h][e][l][l][o]的形式,分两步来就行:
- 字符串转字符数组:直接用
toCharArray()方法,不过先记得用trim()去掉前后的空格:
val originalStr = " Hello " val charArray = originalStr.trim().toCharArray() // 得到字符数组['H','e','l','l','o']
- 格式化为你要的样式:如果需要把字符转成小写并拼接成
[h][e][l][l][o],可以用joinToString()或者手动拼接:
// 方式1:用joinToString快速拼接 val formattedResult = charArray.joinToString("") { "[${it.lowercaseChar()}]" } println(formattedResult) // 输出:[h][e][l][l][o] // 方式2:手动构建字符串,更直观 val result = buildString { originalStr.trim().lowercase().forEach { append("[$it]") } } println(result) // 同样输出[h][e][l][l][o]
内容的提问来源于stack exchange,提问作者abdulazaez
相关产品推荐
相关产品推荐

