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
arrayCheck
tubedatasplite
大小相同的数组,而不是
null
for(int i=0; i<tubeDataSplit .length(); i++){

    TubeData newTubeData = new TubeData();
    newTubeData.setTubeData(tubeDataSpliter[i]);
    tubeDataArrayList.add(newTubeData);
}
private Strind tubeDate;