You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将十六进制格式的Long字符串转换为Long变量?

十六进制格式字符串转Long变量的实现方法

完全可行,你之前的方法无效是因为默认的toLong()会按十进制解析字符串,而你的字符串是带0x前缀的十六进制格式,十进制解析无法识别。以下是几种可行的实现方式:

方法1:使用Long.decode()(推荐)

Java的Long.decode()方法可以自动识别带0x/0X前缀的十六进制字符串,直接解析为Long值:

val strLong: String = "0xFF007A45"
val longIWant: Long = java.lang.Long.decode(strLong)

方法2:去掉前缀后指定基数解析

先移除字符串的0x前缀,再调用toLong(16)指定按十六进制解析:

val strLong: String = "0xFF007A45"
// 处理小写0x前缀
val longIWant: Long = strLong.removePrefix("0x").toLong(16)
// 如果需要兼容大写0X前缀,用removePrefixes
val longIWant: Long = strLong.removePrefixes("0x", "0X").toLong(16)

方法3:截取子串后解析

通过截取字符串从第3位开始的部分,再指定十六进制基数解析:

val strLong: String = "0xFF007A45"
val longIWant: Long = strLong.substring(2).toLong(16)

以上几种方法都能得到你想要的0xFF007A45对应的Long值。

内容的提问来源于stack exchange,提问作者david CHOLLEZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 14:15:41