您好我不确定这是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.parseInt
和Integer.valueOf
每次为“01,02,03,04”等字符串赋值为0 data.equnits
通过检查2位数来存储要转换为整数的字符串只从大型三维数组中选择。由于它是一个三维数组,因此存在一些空值
字符串的空检查似乎不起作用,因为while循环似乎没有检测到它,并且它最终会在数组中被传递到数组适配器中,以便在滚动时导致NullPointerException
。{/ p >
重启eclipse无济于事。
答案 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++;
}