java android字符串和整数函数不起作用

时间:2012-03-27 18:16:41

标签: java android string function integer

您好我不确定这是Eclipse或Java的问题,但最近我的代码已停止工作。我只改变了分配新变量来存储东西的事情。我的程序采用多维字符串数组,并应返回一个修整为空的新数组。

public void makebuttons(final int n, String equals) {
    //does lots of widget functions and id assignments
    String[] items=getArray(Integer.parseInt(data.equnits.substring(n*3, n*3+1)));
    unitvalues[n]=Integer.parseInt(data.equnits.substring(n*3, n*3+1));
    ArrayAdapter aa = new ArrayAdapter(this,android.R.layout.simple_spinner_item, items);
    //does more code
}
public static String[] getArray(int selection) {
    String[] result;//stores the new array
    int x=0,j=0 ,ulength = data.units[0].length;//ints used
    String temp="";
    while(j < ulength && temp!=null) {
        temp= data.units[selection][j][0];    //find the actual array length
        j++;
    }
    if(j==ulength)j--;
    result = new String[j+1];//initalise array from check
    for(x=0; x<=j; x++) { //add data to array
        result[x]=data.units[selection][x][0];
    }
    return result;//return corrected array
}

Integer.parseIntInteger.valueOf每次为“01,02,03,04”等字符串赋值为0 data.equnits通过检查2位数来存储要转换为整数的字符串只从大型三维数组中选择。由于它是一个三维数组,因此存在一些空值

字符串的空检查似乎不起作用,因为while循环似乎没有检测到它,并且它最终会在数组中被传递到数组适配器中,以便在滚动时导致NullPointerException。{/ p >

重启eclipse无济于事。

1 个答案:

答案 0 :(得分:1)

如果没有更多信息,我无法解决您的第一个问题,但这似乎是您的第二个问题:

第一个参数的函数substring是 inclusive ,第二个参数是 exclusive 。由于您只在n * 3中加1,因此只能得到一个字符。

尝试使用:

substring(n*3, n*3+2)

修改

从我上面的评论中添加更新的代码:

while(j < ulength && temp != null && !temp.isEmpty())
{
   temp = data.units[selection][j];
   j++;
}