Android-在一个简单的数组上出界
Android-在一个简单的数组上出界,android,Android,tubeDataSplit有多行,其中4个数字由分隔每行tubeDataSpliter应将这4个数字分开,并在TubeData上使用它 我的问题是当tubeDataSplit大于4时,程序崩溃,因为tubedatasplite数组超出范围。所以我假设TubeDataSplier是;间隔 我怎样才能避免这种情况 String[] tubeDataSplit = tubeDataString.split("\\n"); String[] tubeDataSpliter; f
tubeDataSplit
有多行,其中4个数字由分隔代码>每行tubeDataSpliter
应将这4个数字分开,并在TubeData
上使用它
我的问题是当tubeDataSplit
大于4时,程序崩溃,因为tubedatasplite
数组超出范围。所以我假设TubeDataSplier是;间隔
我怎样才能避免这种情况
String[] tubeDataSplit = tubeDataString.split("\\n");
String[] tubeDataSpliter;
for(int i=0; i<tubeDataSplit.length -1;i++) {
tubeDataSpliter = tubeDataSplit[i].split(";");
if (tubeDataSpliter[i] != null) {
TubeData newTubeData = new TubeData(tubeDataSpliter[0], Float.parseFloat(tubeDataSpliter[1]), Float.parseFloat(tubeDataSpliter[2]), Float.parseFloat(tubeDataSpliter[3]));
tubeDataArrayList.add(newTubeData);
}
}
String[]tubeDataSplit=tubeDataString.split(\\n”);
字符串[]TubeDataSplier;
对于(int i=0;i使用以下代码修改您的if条件:
if (tubeDataSplitter != null && tubeDataSpliter.length >=4 ) {
TubeData newTubeData = new TubeData(tubeDataSpliter[0], Float.parseFloat(tubeDataSpliter[1]), Float.parseFloat(tubeDataSpliter[2]), Float.parseFloat(tubeDataSpliter[3]));
tubeDataArrayList.add(newTubeData);
}
如果(TubeDataSplier[i]!=null){
是错误的
当超过4行时,i
变为4行或更大,tubeDataSpliter[4]
超出数组的边界,因为它的长度为4
在这一行,您应该做的是:
if(tubedatasplite.length==4){
nvm…我不能使用tubedatasplite[I]
它是tubeDataSplit[I]
。定义tubeDataSplit
arrayChecktubedatasplite
大小相同的数组,而不是null
。
for(int i=0; i<tubeDataSplit .length(); i++){
TubeData newTubeData = new TubeData();
newTubeData.setTubeData(tubeDataSpliter[i]);
tubeDataArrayList.add(newTubeData);
}
private Strind tubeDate;