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

如何实现Integer.toString(char)的反向方法str2Char()?

如何实现char2Str的反向方法str2Char()?

问题背景

现有方法char2Str通过调用Integer.toString(char)将字符转换为对应的数字字符串,代码如下:

public static String char2Str(char c) { 
    return Integer.toString(c); 
}

补充说明:例如,char2Str('ɮ')返回"622"。

请问如何实现上述方法的反向方法str2Char()?


我的解决方案

这其实很简单,咱们逆向原方法的逻辑来做就可以:原方法是把字符的Unicode码值转换成字符串,那反向操作就是把输入的数字字符串解析成整数,再强制转换回对应的char类型。

基础实现代码

public static char str2Char(String str) {
    // 将字符串解析为整数,再强转为char类型
    return (char) Integer.parseInt(str);
}

验证示例

比如调用str2Char("622"),就会返回字符'ɮ',完美对应原方法的示例结果,实现了反向转换。

额外的健壮性优化

不过有两点需要注意:

  • 如果输入的字符串不是有效的十进制整数(比如包含非数字字符),Integer.parseInt()会抛出NumberFormatException,你可以根据需求添加异常捕获或处理;
  • Java里的char是16位无符号类型,有效范围是0到65535(也就是Character.MAX_VALUE的值)。如果输入的数值超出这个范围,直接强转会导致数值截断。如果需要严格校验输入的合法性,可以加上范围检查:
    public static char str2Char(String str) {
        int codePoint = Integer.parseInt(str);
        if (codePoint < 0 || codePoint > Character.MAX_VALUE) {
            throw new IllegalArgumentException("输入的数值超出char的有效范围:0~" + Character.MAX_VALUE);
        }
        return (char) codePoint;
    }
    

内容的提问来源于stack exchange,提问作者Kohei TAMURA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:46:22