あなたがしなければならないことは、各数字が「A」から「Z」(65から90)または「a」から「z」(97から122)のいずれかにあると仮定することです
- を呼び出して最初の 2 桁を取得する
substring()
- 数値型に変換して、それらが上記の範囲内にあるかどうかを確認します
- それ以外の場合は、3 桁目を取得して確認します
3桁ごとにASCII文字を形成したことがわかるように、3桁にパディングすることができれば、はるかに簡単になります
文字の場合にのみ機能するコード:
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 値に対して正しく機能することに注意してください。 2 桁なので、10 ~ 25 と見なされ、3 桁の長さと解釈されます。