将String数组转换为Integer数组

时间:2011-06-14 17:43:03

标签: android arrays

由于我无法找到将字符串数组转换为整数数组的简单方法,因此我查找了一个方法的示例,这是我最终得到的结果:

private int[] convert(String string) {
    int number[] = new int[string.length()];

    for (int i = 0; i < string.length(); i++) {
        number[i] = Integer.parseInt(string[i]); // error here
    }
return number;
}

parseInt需要一个字符串,这是字符串[i],但错误告诉我“表达式的类型必须是数组类型,但它已解析为String”

我无法弄清楚我的代码有什么问题。

编辑:我是个白痴。谢谢所有这一切都很明显。

4 个答案:

答案 0 :(得分:8)

您正在尝试读取字符串,就好像它是一个数组一样。我假设你一次尝试通过一个字符串。为此,请使用.charAt()

private int[] convert(String string) {
    int number[] = new int[string.length()];

    for (int i = 0; i < string.length(); i++) {
        number[i] = Integer.parseInt(string.charAt(i)); //Note charAt
    }
   return number;
}

但是,如果您希望字符串是字符串数组,则会在函数原型中省略数组标识符。使用以下更正版本:

private int[] convert(String[] string) { //Note the [] after the String.
    int number[] = new int[string.length()];

    for (int i = 0; i < string.length(); i++) {
        number[i] = Integer.parseInt(string[i]);
    }
   return number;
}

答案 1 :(得分:4)

您的代码中有错误。使用此代码:

private int[] convert(String[] string) {
    int number[] = new int[string.length];

    for (int i = 0; i < string.length; i++) {
        number[i] = Integer.parseInt(string[i]); // error here
    }
    return number;
}

答案 2 :(得分:2)

您的方法的参数是String而不是String数组。您不能使用string [i]访问String中的元素。如果要从String中实际获取单个字符,请使用'String.charAt(..)'或'String.substring(..)'。请注意,charAt(..)将返回char,但这些内容很容易转换为字符串。

答案 3 :(得分:0)

使用 Arrays.asList( YourIntArray 创建arraylist

Integer[] intArray = {5, 10, 15}; // cannot use int[] here
List<Integer> intList = Arrays.asList(intArray);

或者,要解耦两个数据结构:

List<Integer> intList = new ArrayList<Integer>(intArray.length);

for (int i=0; i<intArray.length; i++)
{
    intList.add(intArray[i]);
}

甚至更多:

List<Integer> intList = new ArrayList<Integer>(Arrays.asList(intArray));

。#这对我有用