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

字符串数组转字符十进制ASCII值失败,求正确转换方案

解决字符转十进制编码值的问题

嘿,我完全懂你踩的坑了——你想用Integer.parseInt()把单个字母字符串转成对应的十进制编码值,但这个方法本身是用来解析数字格式字符串的(比如把"123"转成整数123),对字母字符串肯定会报错,因为它根本不是合法的数字格式啊!

要获取字母对应的十进制ASCII(Unicode的子集)编码值,其实很简单:只需要把字符串里的字符取出来,再转换成int类型就行——因为char类型在Java里本质就是16位的Unicode编码值,转成int就能直接得到十进制数值。

修改你的方法如下:

public static int[] String2Int(String[] k){
    int[] arrayBuffer = new int[k.length];
    for (int i=0; i < k.length; i++) {
        // 取出每个单字符字符串中的字符
        char charFromStr = k[i].charAt(0);
        // 将char转成int,得到对应的十进制编码值
        arrayBuffer[i] = (int) charFromStr;
    }
    return arrayBuffer;
}

测试你的{"H","E","L","L","O"}数组,调用这个方法后会得到结果[72, 69, 76, 76, 79],正好对应每个字母的ASCII十进制值。

额外提一句:如果你的数组里有可能出现多字符的元素,可以加个判断避免IndexOutOfBoundsException,不过看你的场景都是单个字符,当前代码完全够用啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:09:58