2011-06-01 51 views
8

我有一種情況,我需要在字母表中找到字母的索引。在Python中,我可以使用string.ascii_lowercasestring.ascii_uppercase。 Java中有類似的東西嗎?Java中的字母常量?

很顯然,我可以這樣做:

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

但這麼多的Python後,這讓我不知道這是建在什麼地方。

+1

哪個字母?說英語的人在發現非英文字母時經常會感到驚訝。 – 2011-06-01 18:34:45

+0

我實際上並沒有將它用作字母表,我只是在第26位(這恰好是拉丁字母)有一些「數字」。 – 2011-06-01 18:37:43

回答

10

你可以得到這樣的指標:

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

好主意。我沒有想到這一點。 – 2011-06-01 18:18:03

2

雖然我寧願ColinD的做法,只要它符合我只想提的是Java的實際上有某種這個API的。它允許您分析最多36個基數的數字,其中使用來自'0'-'9'的10個數字和字母'a'-'z'作爲範圍的其餘部分(無論是哪種情況)。

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

和背部

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

如果你真的想使用它來創建或解析芩36號,您可以使用採取基數參數Integer.parseIntInteger.toString靜態方法實現。

+0

絕對有趣。 – 2011-06-01 19:19:20