2011-06-01 16 views
8

Alfabede bir harf indeksi bulmam gereken bir durum var. Python'da string.ascii_lowercase veya string.ascii_uppercase kullanabilirdim. Java'da benzer bir şey var mı? Java'da alfabetik sabit?

Açıkçası ben yapabilirsiniz:

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

Ama bu kadar Python sonra, bu yerde inşa edilmiş olursa bana meraklandırıyor.

+1

Hangi alfabe? İngilizce konuşan kişiler, İngilizce olmayan alfabeleri öğrendiklerinde sıklıkla bir sürpriz yaparlar. –

+0

Ben aslında bir alfabe olarak kullanmıyorum, sadece baz 26 ("Latin alfabesi olur") bazı "sayıları" var. –

cevap

10

Böyle endeksi alabilirsiniz:

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

Güzel fikir. Bunu düşünmemiştim. –

2

ben sadece Java aslında bu API çeşit vardır bahsetmek istiyorum uyuyor zaman ben ColinD yaklaşımını tercih ediyorum rağmen. Sayıları, '0'-'9''dan 10 rakamı ve 3612'ye kadar olan sayıları (her iki durumda da) için 'a'-'z' harflerini kullanan 36 adede kadar bir yarıçapı ayrıştırmanıza olanak tanır.

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

ve arka

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

durumda aslında bir radix parametresini alır Integer.parseInt ve Integer.toString statik yöntem uygulamalarını kullanabilir, 36 numara radix oluşturmak için kullanabilir veya ayrıştırmak istiyor.

+0

Kesinlikle ilginç. –

İlgili konular