从数组生成变量以创建循环

时间:2014-07-24 09:03:03

标签: java arrays loops

所以我在从文本文件中读取和分割变量时生成了这个数组。然后,我需要将数组中的split变量解析成一个整数,并在数据不是整数的情况下将其包围在try catch中。我试图避免为数组中的每个变量创建一个try catch块。到目前为止,这是我的代码:

String [] tempList = data.split("-");

String [] variables = {"readerNo", "seconds", "minutes", "hours", 
                       "days", "month", "year", "other","empNo"};
int readerNo, seconds, minutes, hours, days, month, year,other, empNo;
/*
* parsing of data to integers/boolean
*/

//-----------
for(int i = 0; i < variables.length; i++) {
    try{
        *variable name should be here* = Integer.parseInt(tempList[i]); 
    }catch(Exception E){
        *variable name should be here* = -1; 
    }
}

是否可能或者我是否需要为每个创建一个try catch块?

2 个答案:

答案 0 :(得分:2)

尝试这样做:

int[] myNumbers = new int[tempList.length];
for(int i = 0; i < tempList.length; i++){
  try{
     myNumbers[i] = Integer.parseInt(tempList[i]); 
  }catch(Exception E){
     myNumbers[i] = -1; 
  }
}

这是避免try {} - Blocks的方法:)

答案 1 :(得分:0)

我认为一个很好的方法是使用正则表达式:

if(tempList[i].matches("-?\\d+"))
{
  Integer.parseInt(tempList[i]); 
}

有几种方法可以检查字符串是否表示整数。如果你想避开该异常,你需要在尝试解析之前知道它是一个int。请参阅此处了解相关内容:Determine if a String is an Integer in Java