字符到整数的转换
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);
所以我有这样的东西:
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);