我正在尝试将输入的字母变成数字。
例如,“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;
}