从一串数字中获取一个int数组

时间:2013-04-10 14:00:27

标签: java arrays string split int

我有一长串数字,

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。我尝试了各种各样的逃避或正则表达但没有任何作用。

有人可以帮忙吗?

6 个答案:

答案 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()方法,您可以定义要转换为数字的子字符串的长度。