2

有人可以帮忙吗?我对 Java 编程完全陌生,我需要将字母表示为数字,以便我可以用数字而不是字母来执行操作(比如匹配两个数字)。例如 A = 1; B = 2; c = 3;...非常感谢

4

3 回答 3

3
System.out.println((int)'A');

会给你65(A的ASCII码是65)

System.out.println((int)'A' - 64);

会将数字偏移到 1。

如果您希望使用上述方法也将较低的 'a' 打印为 1,只需使用Character.toUppserCase('a');将其转换为大写即可。

于 2012-11-20T18:28:37.870 回答
2

创建如下转换器方法:

public class Test {
    public static void main(String[] args) {
        Test t = new Test();

        System.out.println(t.alphabetToNumber('A'));
        System.out.println(t.numberToAlphabet(1));
    }

    public int alphabetToNumber(char a) {
        return a - 64;
    }

    public char numberToAlphabet(int i) {
        return (char) (i + 64);
    }
}
于 2012-11-20T18:30:08.660 回答
2

考虑到您是编程新手,您必须知道有一种叫做ASCII Code的东西。此代码描述了哪个字符是如何编码的。如您所见,字符“a”由数字 97 表示。所以在 Java 中

System.out.println((char)(97));

将打印字符'a'。(char)就是所谓的演员表。这意味着数字 97 被“强制”显示为一个字符。反之亦然

System.out.println((int)'a');

这会强制将字符“a”显示为其 ASCII 数字值 97。

所以如果你想用 1-26 来表示从 a 到 z 的字符,你必须这样做:

char yourChar = 'z';
int yourCharInt = (int)yourChar - (int)'a' + 1;
于 2012-11-20T18:36:23.313 回答