所以我有这样的事情:
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
类型?
答案 0 :(得分:7)
您可以尝试:
int cr = "9783815820865".charAt(0) - '0';
charAt(0)
将返回'9'
(作为char
),这是一种数字类型。从这个值我们只需减去'0'
的值,它再次是数字,并且正好是ASCII表中'9'
字符条目后面的九个条目。
因此,在幕后,减法将使用'9'
和'0'
的ASCII码,这意味着将计算57 - 48
。
答案 1 :(得分:5)
试试这个:
char c = "9783815820865".charAt(0);
int cr = Integer.parseInt(c+"");
答案 2 :(得分:0)
使用Character#getNumericValue
可能更具惯用性。请记住,它会将'A'
以上的任何内容转换为10。
int cr = Character.getNumericValue("9783815820865".charAt(0));
System.out.println(cr);