Kotlin如何从字符串中提取数字并拼接为长整型数值
Kotlin 字符串提取数字拼接实现方案
核心逻辑
利用Kotlin字符串内置的filter方法,筛选出所有属于数字的字符,直接拼接即可得到目标字符串。如果需要转为数值类型,要注意数值范围避免溢出。
基础实现(提取数字字符串)
val input = "81aabf9d-844e-4086-9621-f3afed02e163" val targetStr = input.filter { it.isDigit() } // 得到结果:81984440869621302163
数值类型转换注意事项
Kotlin的Long类型为64位有符号整数,最大可表示的数值为9223372036854775807(共19位),你示例中的提取结果为20位,已经超出Long的范围,建议使用BigInteger存储:
import java.math.BigInteger val targetNum = targetStr.toBigInteger()
如果确认提取后的数字长度小于等于18位,可以直接转Long:
val targetNum = targetStr.toLong()
完整运行示例
fun main() { val inputStr = "81aabf9d-844e-4086-9621-f3afed02e163" val digitStr = inputStr.filter { it.isDigit() } println("提取结果:$digitStr") // 转换为大整数 val bigNumber = digitStr.toBigInteger() println("大整数格式结果:$bigNumber") }
运行输出:
提取结果:81984440869621302163 大整数格式结果:81984440869621302163
内容的提问来源于stack exchange,提问作者ali tavakoli
相关产品推荐
相关产品推荐

