Отображение всех символов в Java - PullRequest
0 голосов
/ 10 сентября 2018

Это то, что я получил

public class CharacterArithmeticExperiment {
  public static void main(String[] args) {
    char start = '1';
    for(int i = 1; i < 500;i++){
      System.out.printf("%c", start + i);
    }
  }
}

выход:

23456789:; <=> @ ABCDEFGHIJKLMNOPQRSTUVWXYZ [] ^ _ `АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ {|} ~ ???????????????????????????? ?????????????????????????????????????????????????????? ?????????????????????????????????????????????? ?????????????????????????????????????????????? ?????????????????????????????????????????????????? ?????????????????????????????????????????????????? ???????????????????????????????????????????

Вот в чем проблема, нужно ли мне что-то еще, чтобы правильно отобразить это, или что с этим, я не слишком много узнал о персонажах, но я знаю, черт побери, есть больше символов, чем это, и я действительно хочу увидеть им любая помощь очень ценится.

1 Ответ

0 голосов
/ 10 сентября 2018

Тип данных char в java основан на значениях ascii . Каждый символ, символ и целое число связаны со значением ascii . В вашем коде:

public class CharacterArithmeticExperiment {
public static void main(String[] args) {
char start = '1';
for(int i = 1; i < 500;i++){
  System.out.printf("%c", start + i);
}
}
}

Здесь ascii значение '1' равно 49. В для цикла при добавлении i к start переменной start получает typecasted и становится 49. Таким образом, для первой итерации значение start + i = 50 и символ, связанный со значением 50 ascii, равен '2'. Таким образом, значения печатаются соответственно для следующих итераций. Таким образом, рабочий код для печати символов может соответствовать значениям ascii следующим образом:

public class CharacterArithmeticExperiment {
public static void main(String[] args) {
char start = 'a';
for(int i = 0; i < 26 ;i++){
  System.out.printf("%c", start + i);
}
}
}

ВЫХОД: abcdefghijklmnopqrstuvwxyz

для ссылки на таблицу значений ascii нажмите здесь

...