Android - 在一个简单的数组上超出范围

时间:2017-05-08 10:14:02

标签: android

tubeDataSplit有多行,每行;分隔4个数字。 tubeDataSpliter应将这4个数字拆分并在TubeData上使用。

我的问题是,当tubeDataSplit大于4时,程序崩溃,因为tubeDataSpliter数组超出界限。所以我假设tubeDataSpliter的大小是;间距。

我该如何避免这种情况?

    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);

        }

    }

1 个答案:

答案 0 :(得分:1)

使用以下代码修改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);

        }