2011-06-01 23 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