我有一长串数字,
String strNumbers = "123456789";
我需要从中获得int[]
。
我使用这种方法来获取它:
public static int[] getIntArray(strNumbers)
{
String[] strValues = strNumbers.split("");
int[] iArr = new int[strValues.length];
for(int i = 0; i < strValues.length; i++)
{
iArr[i] = Integer.parseInt(strValues[i]);
}
return iArr;
}
我收到此错误:java.lang.NumberFormatException:对于输入字符串:“”
我的猜测是我无法以这种方式拆分String。我尝试了各种各样的逃避或正则表达但没有任何作用。
有人可以帮忙吗?
答案 0 :(得分:9)
尝试
char[] chars = strNumbers.toCharArray();
然后遍历char
数组。
答案 1 :(得分:6)
你的问题是拆分正则表达式。试试这个:
String[] strValues = strNumbers.split("(?<=\\d)");
这会在每个数字之后拆分(使用后面的正则表达式),这将为空白输入创建一个大小为零的数组。
答案 2 :(得分:1)
您可以使用charAt()函数检索字符串中的每个字符,然后执行parseInt()
答案 3 :(得分:0)
你可以简单地使用for循环遍历你的字符串并调用String.charAt(int)
答案 4 :(得分:0)
尝试:
char[] chars = strNumbers.toCharArray();
int[] iArr = new int[chars.length];
for(int i = 0 ; i < chars.length ; ++i) {
iArr[i] = chars[i] - '0';
}
答案 5 :(得分:0)
您可以使用循环语句来迭代字符串。然后使用子字符串方法将字符串切割成单个数字。使用substring()方法,您可以定义要转换为数字的子字符串的长度。