gpt4 book ai didi

java 将整数字符串转换为可能的 ASCII 字符组合

转载 作者:行者123 更新时间:2023-12-01 14:01:42 24 4
gpt4 key购买 nike

说我有

    String input = "Programming", result="\0";
int temp;
for (int i=0;i<input.length();++i) {
temp = input.charAt(i);
result += temp;
}

结果将为8011411110311497109109105110103。我知道

    P = 80
r = 114
o = 111
g = 103
r = 114
a = 97
m = 109
m = 109
i = 105
n = 110
g = 103

出于好奇,是否有可能以简单的方式逆转该过程?

最佳答案

您需要做的是假设每个数字位于“A”到“Z”(65 到 90)或“a”到“z”(97 到 122)之间

  1. 通过调用 substring() 获取前 2 位数字
  2. 通过转换为数字类型来检查它们是否在上述范围内
    • 如果这样做,则继续循环
  3. 否则获取第三位数字并检查

如果你可以将其填充为三位数字,这样你就会知道每三个数字组成一个 ASCII 字母,那就简单多了

仅当它是字母时才有效的代码:

public static void main(String[] args) {
String toConvert= "8011411110311497109109105110103";
String result="";
while(toConvert.length()>0){
String digits=toConvert.substring(0, 2);
int num=Integer.valueOf(digits);
if(('A'<=num&&num<='Z')||('a'<=num&&num<='z')){
toConvert=toConvert.substring(2);
}
else{
digits=toConvert.substring(0, 3);
num=Integer.valueOf(digits);
toConvert=toConvert.substring(3);
}
String letter = String.valueOf((char) num);
result+=letter;
}
System.out.println(result);
}

注意如果将测试更改为 num>25 ,那么它将正确处理从 26 到 99 的所有 ASCII 值:对于值 26 到 99,它将解释它们正确地具有 2 位数字,对于从 100 到 255 的值,它只会查看前 2 位数字,因此它们将被视为 10-25,并将被解释为 3 位数字长

关于java 将整数字符串转换为可能的 ASCII 字符组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19308356/

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