是否可以使用Java枚举将字母转换为数字?

时间:2013-03-16 22:20:13

标签: java enums

我是java的新手。我需要编写一个输入英文文本的程序,并根据以下对应关系将其翻译成数字:a到0,b到1 ... z到26,句点“。”到27,逗号“,”到28,“?”到29,“(”到30,和“)”到31.我想知道是否有可能使用枚举来达到这个目的?

2 个答案:

答案 0 :(得分:3)

这不是特定于Java的东西。对于计算机,字符只是与某些代码对应的数值:ASCII,Unicode或其他。因此,在大多数编程语言(包括Java)中,您应该找到将字母视为数字的方法。在Java中,您可以使用char基元类型(以及Character对象包装器)。

您只需要做一些基本的算术,以获得您需要的映射。

答案 1 :(得分:1)

你可以做到

public static int letterToInt(char ch) {
    return (ch & 31) - 1;
}

如果你有一个特定的字母列表,你可以做

public static int letterToInt(char ch) {
    return "abcdefghijklmnopqrstuvwxyz.,?()".indexOf(ch);
}

将'a'或'A'映射为0,将'b'或'B'映射为1等。注意:a-z为1到26或0到25。