【问题标题】:how can I split Arraylist with null data and sometimes no data in Java?java - 如何使用空数据拆分Arraylist,有时在Java中没有数据?
【发布时间】:2015-04-13 11:25:04
【问题描述】:

我将数据存储在 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

【问题讨论】:

  • Java 有一个 Properties 对象
  • 您确定要将其存储在 arraylist 中而不是 Map 中吗?
  • 这不是 ArrayList 的任务。
  • 对于像fldPlAdv= 这样的示例,右侧没有任何值,因此拆分后您的 String[] 将只有一个元素,而 [1] 指的是不存在的第二个元素,那就是你得到 ArrayIndexOutOfBoundsException 的原因
  • 您真的应该进入属性文件并通过 ResourceBundle 类访问它们,例如:ResourceBundle settings = ResourceBundle.getBundle("settings");,然后您可以访问如下值:String empCode = settings.getString("EmpCode"); 在运行时修改它?没问题:stackoverflow.com/questions/15337409/…

标签: java


【解决方案1】:

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

例如

fldEnc=
 fldEncDays=
 fldEncSal=
 fldEncAmt=

= 分割返回

["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 <strKey.size(); i++) {
  String[] splitted = strKey.get(i).toString().split("=");
  if(splitted.length > 1){
    System.out.println(splitted[1]);
  } else {
    System.out.println("No value for key:" + splitted[0];
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2022-01-01
    • 2017-07-06
    相关资源
    最近更新 更多