【问题标题】:Alphabet constant in Java?Java中的字母常量?
【发布时间】:2011-06-01 18:11:34
【问题描述】:

我有一种情况,我需要在字母表中找到一个字母的索引。在 Python 中,我可以使用 string.ascii_lowercasestring.ascii_uppercase。 Java中有类似的东西吗?

显然我可以做到:

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

但是在使用了这么多 Python 之后,这让我怀疑它是否内置在某个地方。

【问题讨论】:

  • 哪个字母?说英语的人在发现非英语字母时经常会感到惊讶。
  • 我实际上并没有将它用作字母表,我只是有一些以 26 为底的“数字”(恰好是拉丁字母表)。

标签: java constants


【解决方案1】:

你可以这样获取索引:

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

【讨论】:

  • 好主意。我没想到。
【解决方案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 );

如果您真的想使用它来创建或解析 radix 36 数字,您可以使用带有 radix 参数的 Integer.parseIntInteger.toString 静态方法实现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    相关资源
    最近更新 更多