您需要做的是假设每个数字介于“A”到“Z”、(65 到 90)或“a”到“z”(97 到 122)之间
- 通过调用获取前 2 位数字
substring()
- 通过转换为数字类型来检查这些是否在上述范围内
- 否则得到第三个数字并检查
如果您可以将其填充为三位数字会更简单,这样您就会知道每三位数字形成一个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 开始的所有 ASCII 值:对于 26 到 99 的值,它会将它们正确解释为具有 2 位数字,对于从 100 到 255 的值,它只会查看第一个2 位数,因此它们将被视为 10-25,并将被解释为 3 位数长