如何在Kotlin中将十六进制代码转换为标准字符
Kotlin中转义十六进制字符的简便处理方法
Kotlin标准库并没有直接提供处理\xXX格式十六进制转义字符的内置函数,但可以通过扩展函数+正则匹配快速实现需求,代码简洁且无需额外依赖:
fun String.decodeHexEscapes(): String { // 匹配\x后接两位十六进制字符的格式 val hexEscapePattern = Regex("\\\\x([0-9A-Fa-f]{2})") return hexEscapePattern.replace(this) { match -> // 提取十六进制字符串,转成Int后转换为对应字符 match.groupValues[1].toInt(16).toChar().toString() } } // 使用示例 fun main() { val originalStr = "Build \\x26 sell" val decodedStr = originalStr.decodeHexEscapes() println(decodedStr) // 输出:Build & sell }
补充说明
- 该函数会批量处理字符串中所有
\xXX格式的转义,比如"\\x48\\x65\\x6C\\x6C\\x6F"会被解析为"Hello" - 如果你的场景还包含HTML实体类转义(比如
í),可以借助第三方库(如Apache Commons Text)的StringEscapeUtils.unescapeHtml4()方法,但需要额外引入依赖;但针对\xXX这种C风格转义,上述自定义扩展函数是最轻便的方案
内容的提问来源于stack exchange,提问作者Vít Paník
相关产品推荐
相关产品推荐

