2011-06-01 18 views
8

Tengo una situación en la que necesito encontrar el índice de una letra en el alfabeto. En Python podría usar string.ascii_lowercase o string.ascii_uppercase. ¿Hay algo similar en Java?Alfabeto constante en Java?

Obviamente, podría hacer:

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

Pero después de tanto Python, hace que me pregunte si esto está construido en algún lugar.

+1

¿Qué alfabeto? Las personas de habla inglesa frecuentemente se sorprenden cuando descubren alfabetos no ingleses. –

+0

En realidad no lo uso como alfabeto, solo tengo algunos "números" en la base 26 (que es el alfabeto latino). –

Respuesta

10

Usted puede obtener el índice de la siguiente manera:

char lowercaseLetter = ... 
int index = lowercaseLetter - 'a'; 
+0

Buena idea. No había pensado en eso. –

2

Aunque yo preferiría el enfoque de ColinD cuando más le conviene sólo quiero mencionar que Java en realidad tiene algún tipo de API para esto. Le permite analizar números con una base de hasta 36 que usa los 10 dígitos de '0'-'9' y las letras 'a'-'z' para el resto del rango (en cualquier caso).

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

y la espalda

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

En caso de que realmente desea utilizar esto para crear o analizar radix 36 números, puede utilizar los Integer.parseInt y Integer.toString implementaciones de métodos estáticos que tienen un parámetro radix.

+0

Definitivamente interesante. –

Cuestiones relacionadas