gpt4 book ai didi

java - 我希望能够根据 ASCII 十进制表将数字转换为文本

转载 作者:行者123 更新时间:2023-12-01 15:43:34 25 4
gpt4 key购买 nike

我正在尝试这样做,以便在字符串的长度是三的倍数的条件下,我可以获取单独的三字符子字符串并将它们转换为整数。分区子字符串转换成的整数应该充当包含 ASCII 表的所有打印字符的数组中的相对位置。

 String IntMessage = result.toString();
if
{
(IntMessage.substring(0,1)=="1" && IntMessage.length()%3==0)
for(j=0;j < IntMessage.length()-2;j += 3)
n = Integer.parseInt(IntMessage.substring(j,j+3));
mess += ASCII[n-32];
return mess;

在其他情况下,该方法应获取字符串的前两个字符并将它们初始化为变量 i。在这种情况下,变量mess被初始化为ASCII数组中索引为i-32的字符。然后有一个 for 循环,获取剩余的字符并将它们划分为三位数的子字符串,并根据它们在 ASCII 数组中的相应位置将其转换为字符串。该数组中的 String 变量不断添加到变量困惑中,以获得 IntMessage String 的 BigInteger 到 String 转换。

   int i = Integer.parseInt(IntMessage.substring(0,2));

mess=ASCII[i-32];
for(l=2; l< IntMessage.length() - 2; l+=3)
r = Integer.parseInt(IntMessage.substring(l,l+3));
mess+=ASCII[r-32];
return mess;

由于某种原因,该方法不起作用,我想知道我是否做错了什么。我知道如何获取输入字符串并将其转换为一系列数字,但我也想做相反的事情。有什么可以帮忙的吗?

最佳答案

根据您的描述,您可以使用以下方法:

String fromIntMessage(String msg) {
StringBuilder result = new StringBuilder();
for (int x = (msg.length() % 3 - 3) % 3; x < msg.length(); x += 3) {
int chr = Integer.parseInt(msg.substring(Math.max(x, 0), x + 3));
result.append(Character.toString((char) (chr - 32)));
}
return result.toString();
}

String toIntMessage(String string) {
StringBuilder result = new StringBuilder();
for (char c : string.toCharArray()) {
result.append(String.format("%03d", c + 32));
}
return result.charAt(0) == '0' ? result.substring(1) : result.toString();
}

这会给你

toIntMessage("DAA")             // => "100097097"
fromIntMessage("100097097") // => "DAA"

关于java - 我希望能够根据 ASCII 十进制表将数字转换为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com