不使用getNumericValue将Char转换为其数值

时间:2016-03-13 11:48:02

标签: java char int

是否有任何算法可以替换getNumericValue将字符转换为其数字值,例如' a' = 1' b' = 2等等?提前谢谢!

3 个答案:

答案 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

UpperCase / LowerCase

以下适用于小写或大写字符

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;
}