给定变量a String number = "1234567";
有没有更简单的方法将值2返回到整数而不自动装箱和取消装箱值。
我尝试int num = number.charAt(1);
而不是返回两个,它返回了" 2"的Unicode索引。
我唯一不喜欢的选择是
String number = "1234567";
int numA = Integer.valueOf(number.substring(1,2));
int numB = Integer.valueOf(String.valueOf(number.charAt(1));
答案 0 :(得分:3)
char
是一个完整的类型。您可以减去'0'
,因为0
,1
,...,9
的字符值是连续的。
int index = 1; // or any index you like
int num = number.charAt(index) - '0';
答案 1 :(得分:3)
您也可以使用Character.digit(..)
String number = "1234567";
char at = number.charAt(1);
int num = Character.digit(at, 10);
答案 2 :(得分:-1)
使用.intValue()
String number = "1234567";
int numA = Integer.valueOf(number.substring(1,2)).intValue();
//int numB = Integer.valueOf(String.valueOf(number.charAt(1));
System.out.println(numA);
//A more efficient way:
int num = Integer.parseInt(number.substring(1,2));
System.out.println(num);