Я был бы заинтригован, узнав, на каких языках работает этот . Каждый язык, который я когда-либо использовал, будет преобразовывать значения символов в целые числа, используя Unicode (например, Java) или встроенную кодировку символов, обычно ASCII-совместимый. Какой язык будет конвертировать 'a' в 0 или 1?
В любом случае, самое простое изменение, которое заставит ваш код работать в любых ситуациях, будет:
// char values in Java are in the range 0-65535.
int letters[] = new int[65536];
Обратите внимание, что я изменил тип массива с char
на int
, потому что каждый элемент должен быть числом, а не символом.
В качестве альтернативы, вы могли бы оставить его в виде массива размера 27 (желательно все еще используя int
, хотя бы) и затем иметь некоторую функцию отображения от char
до int
.
Однако, чтобы получить пользу от этого упражнения, вы должны действительно понять, почему вы ожидали, что код будет работать, и что это означает с точки зрения вашего понимания Java. Вы ожидали, что массив будет действовать как произвольная карта ключ / значение?