【发布时间】:2016-06-28 10:44:03
【问题描述】:
是否有任何算法可以替代 getNumericValue 将字符转换为其数值,例如 'a' = 1 'b' = 2 等等?提前谢谢!
【问题讨论】:
是否有任何算法可以替代 getNumericValue 将字符转换为其数值,例如 'a' = 1 'b' = 2 等等?提前谢谢!
【问题讨论】:
你可以用一个简单的算术运算
char d = 'd';
int numericValue = d - 'a' + 1; // 4
这也将有效,因为
`
是ASCII表中a之前的字符
int numericValue = d - '`'; // 4
以下适用于小写或大写字符
char d = 'd';
int numericValue = d - (d > 96 ? '`' : '@');
【讨论】:
好吧,如果你想将 'a' 映射到 'z' 到数字 1 到 26,你可以减去 'a' 并加 1 :
char c = 'e';
int nc = c - 'a' + 1; // 5
编辑:
为了将某个输入字符串的所有字符转换为整数,可以使用数组来存储整数值。
例如:
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));
【讨论】:
Map<Character,Integer> 将字符映射到整数。
试试这个。
int intVal(char character){
char subtract = 'a';
int integerValue = (int) character;
if(integerValue < 97){
subtract = 'A';
}
integerValue = integerValue - (int) subtract + 1;
return integerValue;
}
【讨论】: