是否有任何算法可以替换getNumericValue将字符转换为其数字值,例如' a' = 1' b' = 2等等?提前谢谢!
答案 0 :(得分:3)
好吧,如果你想映射一个'到' z'对于数字1到26,你可以减去' a'并添加1:
char c = 'e';
int nc = c - 'a' + 1; // 5
编辑:
为了将某些输入String的所有字符转换为整数,可以使用数组来存储整数值。
例如:
String input = "over";
int[] numbers = input.length();
for (int i=0; i<input.length(); i++)
numbers[i] = input.charAt(i) - 'a' + 1;
System.out.println(Arrays.toString(numbers));
答案 1 :(得分:2)
你可以使用简单的算术运算
char d = 'd';
int numericValue = d - 'a' + 1; // 4
这也将起作用
`
是ASCII表
中a
之前的字符
int numericValue = d - '`'; // 4
以下适用于小写或大写字符
char d = 'd';
int numericValue = d - (d > 96 ? '`' : '@');
答案 2 :(得分:1)
试试这个。
int intVal(char character){
char subtract = 'a';
int integerValue = (int) character;
if(integerValue < 97){
subtract = 'A';
}
integerValue = integerValue - (int) subtract + 1;
return integerValue;
}