所以我在从文本文件中读取和分割变量时生成了这个数组。然后,我需要将数组中的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块?
答案 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