ascii 转字符 java_java – 将ascii字符集转换回字符串

您不能使用十进制数来执行此操作,因为其表示中的位数会发生变化.因此,您将无法区分序列112 5与11 25和1125.

但是,您可以强制每个角色占据正好三位数.在这种情况下,你可以通过重复除以1000来恢复数字,然后取余数:

for (char c : str.toCharArray()) {

String numStr = String.valueOf((int)c);

while (numStr.length() != 3) numStr = "0"+numStr;

sb.append(numStr);

}

如果仅使用UNICODE代码点的ASCII部分,这有点浪费,因为您需要的值大部分是两位数.如果切换到十六进制,则所有ASCII代码点都适合两位数:

for (char c : str.toCharArray()) {

String numStr = Integer.toString(c, 16);

if (numStr.length() == 1) numStr = "0"+numStr;

sb.append(numStr);

}

BigInteger mInt = new BigInteger(sb.toString(), 16);

现在你可以使用除以256而不是1000.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值