, что вы должны сделать, это предположить, что каждое число находится в пределах либо 'A' до 'Z', (65 до 90) или 'а' до 'Z' (97 до 122)
- получить первые 2 цифры через вызов
substring()
- проверки, если таковые находятся в пределах указанных границ путем преобразования в числовой тип
- если они затем продолжить с петлей
- еще получить THI й разряд и проверить, что
было бы гораздо проще, если бы вы могли бы это быть дополнены до трех цифр, чтобы вы знали, что каждые три цифры образовали 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
, то он будет работать правильно для всех значений ASCII от 26 до: для значений 26 до 99, он будет интерпретировать их как имеющие 2 цифры правильно, для значений от 100 до 255 будет смотреть только на первые 2 цифры, поэтому они будут отображаться как 10-25 и будут интерпретироваться как 3 цифры длиной
Скажите, что у вас '123'. Должно ли оно быть '12' +' 3' или '1' +' 23'? – arshajii
Я не думаю, что вы можете, так как будет трудно отличить, является ли 2 числа одним символом или 3-мя числами: p был '80', но g -' 103'. Таким образом, вы не знаете, ожидать ли 2 цифры/char или 3 цифры/char – inixsoftware
Вот почему я спросил, возможно ли это, просто, сделать это, поскольку даже короткая строка создает так много возможностей. – hudadiaz