在Java中,如何使用空数据(有时没有数据)拆分Arraylist?

在Java中,如何使用空数据(有时没有数据)拆分Arraylist?,java,Java,我正在ArrayList中存储数据。现在我想用符号“=”拆分我的ArrayList。但在执行代码时,我遇到了错误。我想要数据,它写在等于之后。请检查和帮助 我在arrayList中的数据如下: SrNo=1 DocCode=HRF03_V1_0 CompCode=G&B EmpCode=11182 fldMode=Apply For Leave fldLeaveType=CL fldFromDate=27/03/201

我正在ArrayList中存储数据。现在我想用符号“=”拆分我的ArrayList。但在执行代码时,我遇到了错误。我想要数据,它写在等于之后。请检查和帮助

我在arrayList中的数据如下:

     SrNo=1
     DocCode=HRF03_V1_0
     CompCode=G&B
     EmpCode=11182
     fldMode=Apply For Leave
     fldLeaveType=CL
     fldFromDate=27/03/2015
     fldToDate=27/03/2015
     fldFullDays=1
     fldHalfDay=0
     fldWhichHalf=-
     fldReason=test
     fldTelExtn=
     fldLta=
     fldLtaSal=
     fldLtaYears=0
     fldNt=
     fldLtaAmt=
     fldLtaDays=
     fldEnc=
     fldEncDays=
     fldEncSal=
     fldEncAmt=
     fldPlAdv=
String[] commaString =tableContent.toString().split(",");                
for(int i=0;i<commaString.length;i++){   
   strKey.add(commaString[i]);    
}
for (int i = 0; i <strKey.size(); i++) {
   System.out.println(strKey.get(i).toString().split("[1]);
}
java.lang.ArrayIndexOutOfBoundsException: 1
代码:

     SrNo=1
     DocCode=HRF03_V1_0
     CompCode=G&B
     EmpCode=11182
     fldMode=Apply For Leave
     fldLeaveType=CL
     fldFromDate=27/03/2015
     fldToDate=27/03/2015
     fldFullDays=1
     fldHalfDay=0
     fldWhichHalf=-
     fldReason=test
     fldTelExtn=
     fldLta=
     fldLtaSal=
     fldLtaYears=0
     fldNt=
     fldLtaAmt=
     fldLtaDays=
     fldEnc=
     fldEncDays=
     fldEncSal=
     fldEncAmt=
     fldPlAdv=
String[] commaString =tableContent.toString().split(",");                
for(int i=0;i<commaString.length;i++){   
   strKey.add(commaString[i]);    
}
for (int i = 0; i <strKey.size(); i++) {
   System.out.println(strKey.get(i).toString().split("[1]);
}
java.lang.ArrayIndexOutOfBoundsException: 1

拆分时,在=之后没有任何内容的行返回仅包含一个元素的数组

e、 g

=返回值拆分

["fldEnc"]
["fldEncDays"]
["fldEncSal"]
["fldEncAmt"]
因此,尝试访问这些数组的索引1将抛出ArrayIndexOutOfBoundsException

因此,为了避免您的异常,请尝试替换

for (int i = 0; i <strKey.size(); i++) {
  System.out.println(strKey.get(i).toString().split("=")[1]);
}

for(int i=0;i Java为此有一个
Properties
对象。是否确实要将其存储在arraylist而不是Map中?这不是arraylist的任务。对于这样的示例
fldPlAdv=
右侧没有值,因此在拆分字符串[]后,它将只有一个元素和[1]引用不存在的第二个元素,这就是您获取ArrayIndexOutofBoundsCeption的原因。您确实应该进入属性文件并通过ResourceBundle类访问它们,如:
ResourceBundle设置=ResourceBundle.getBundle(“设置”);
然后可以访问值,如:
String empCode=settings.getString(“EmpCode”);
在运行时修改它?没问题: