我正在尝试将输入的字母变成数字。
例如,“A”需要等于 0,“B”需要等于 1,“C”需要等于 2,等等。
请按照以下思路思考:
如果你减去'A','A'你得到0。如果你减去'A','B'你得到1。如果你减去'A','C'你得到2。等等。
它给你任何模式吗?您可以使用此模式创建公式。
自己试试。发现一个公式!
由于这似乎是家庭作业,我不会给你完整的答案。:-)
String letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char input = 'e';
int indexVal = letters.indexOf(Character.toUpperCase(input));
您可以将您char转换为int, 并减去 的值(int) 'A'。像这样 :
char z = 'Z'
int number = (int) z - (int) 'A';
所有字符都有一个 int 值,它们的 ASCII 值。您可以将 char 转换为 int 以获取该值(并将 int 转换为 char 以反转它)。
扩展我的评论,你可以这样做。
int aAsciiValue = (int)'a';
char input = however you get your input;
int result = (int)input - aAsciiValue;
可以使用HashMap。在它预先准备好字符之间的“关联” - 它的索引
public int letterToNumber(String letter) {
int letterNumber = letter.toLowerCase().toCharArray()[0] - 'a' + 1;
if (letterNumber < 1 || letterNumber > 26) {
return 0;// Not a letter from a-z
}
return letterNumber;
}