Алфавитная константа в Java? - PullRequest
8 голосов
/ 01 июня 2011

У меня есть ситуация, когда мне нужно найти индекс буквы в алфавите.В Python я мог бы использовать string.ascii_lowercase или string.ascii_uppercase.Есть ли что-то похожее в Java?

Очевидно, я мог бы сделать:

private static char[] alphabet = "abcdefghijklmnopqrstuvwxyz".toCharArray();

Но после такого большого количества Python, я задаюсь вопросом, встроено ли это где-то.

Ответы [ 2 ]

10 голосов
/ 01 июня 2011

Вы можете получить индекс следующим образом:

char lowercaseLetter = ...
int index = lowercaseLetter - 'a';
2 голосов
/ 01 июня 2011

Хотя я бы предпочел подход ColinD, когда он подходит, я просто хочу упомянуть, что в Java на самом деле есть какой-то API для этого.Он позволяет вам анализировать числа с основанием до 36, которые используют 10 цифр от '0'-'9' и буквы 'a'-'z' для остальной части диапазона (в любом случае).

char letter = ...
int index = Character.digit( letter, 36 ) - 10;

иназад

int index = ...
char ch = Character.forDigit( index + 10, 36 );

Если вы действительно хотите использовать это для создания или анализа чисел оснований 36, вы можете использовать реализации статического метода Integer.parseInt и Integer.toString, которые принимают параметр оснований.

...