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