字符到整数的转换

char to int conversion

所以我有这样的东西:

char cr = "9783815820865".charAt(0);
System.out.println(cr);   //prints out 9

如果我这样做:

 int cr = "9783815820865".charAt(0);
 System.out.println(cr);   //prints out 57

我明白char和int之间的转换不是简单的从'9'9。我现在的问题是我只需要将 9 保留为 int 值,而不是 57。如何获取值 9 而不是 57 作为 int 类型?

您可以试试:

int cr = "9783815820865".charAt(0) - '0';

charAt(0) 将 return '9' (作为 char),这是一个数字类型。我们将从这个值中减去 '0' 的值,它也是数字,正好比 ASCII table 中 '9' 字符的条目后面九个条目。

因此,在幕后,减法将使用 '9''0' 的 ASCII 代码,这意味着将计算 57 - 48

试试这个:

char c = "9783815820865".charAt(0);
int cr = Integer.parseInt(c+"");

使用 Character#getNumericValue 可能更符合习惯。请记住,它会将 'A' 以上的任何内容转换为 10.

int cr = Character.getNumericValue("9783815820865".charAt(0));
System.out.println(cr);