如何使用String.charAt(index)从String返回Integer值;

时间:2016-03-06 17:33:10

标签: java

给定变量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));

3 个答案:

答案 0 :(得分:3)

char是一个完整的类型。您可以减去'0',因为01,...,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);