将不存在的元素从String添加到ArrayList <String>

时间:2019-09-13 08:25:20

标签: java arraylist

因此,我正在读取txt文件。该文件就是这样的,用制表符"/t"

分开
 ID    name    test    date    object
 1     John    pass    9/13    RC_CUST_1
 2     John    fail    10/13   RC_CUST_1
 3     John    pass                    

我正在这样读取txt文件:

String line="";
ArrayList<String> data = new ArrayList<String>();
FileReader fIn;
BufferedReader buff;

fIn = new FileReader("...");
buff = new BufferedReader( fIn );

while( ( line = buff.readLine() ) != null  )
{
        if(!line.isEmpty())
            data.add(line);
}

在我的代码后期,我这样做:

    ArrayList<String> name1  = new ArrayList<String>();
    ArrayList<String> RC1  = new ArrayList<String>();
    ArrayList<String> date1  = new ArrayList<String>();
    ArrayList<String> pass1 = new ArrayList<String>();
    String [] substr2;

for(int k=0;k<data.size();k++)
{
    substr2=data.get(k).split("\t");
    RC1.add(substr2[4]);
    name1.add(substr2[1]);
    date1.add(substr2[3]);
    pass1.add(substr2[2]);      
}

我有一个错误,因为您可以看到,我的ID号3没有任何日期或对象。如何解决该问题,如何知道没有dateobject

的ID

例如,如果我遇到此类错误,我想打印:ID number x has not dateID number x has not any object

1 个答案:

答案 0 :(得分:1)

\t上分割后,您得到一个数组作为结果。您可以在访问数组中的字段之前检查数组的长度。

for(int k=0;k<data.size();k++) {
    String [] substr2 = data.get(k).split("\t");
    int length = substr2.length
    if (length >= 5) {
        RC1.add(substr2[4]);
    } else {
        System.out.println("no object found");
    }
    ....     
}