我正在尝试迭代一个字符串列表,检查其中一个是否无法解析为整数。如果其中一个无法解析为整数,则抛出FormatException()。但似乎我做的检查不起作用。有一个错误,我不知道为什么或如何解决它。
String s = strLine;
List myList = new ArrayList<String>(Arrays.asList(s.split(" ")));
List<Integer> intList;
for (int i=0;i<myList.size();i++) {
//Check if all the values are integers
try {
/*Problem area----->*/ intList[i] = Integer.parseInt( (String) myList.get(i) );
} catch (Exception e) {
throw new FormatException();
}
}
答案 0 :(得分:1)
您的代码中存在一些错误。我修好了它们,试试下面的代码:
String s = strLine;
List<String> myList = Arrays.asList(s.split(" "));
List<Integer> intList = new ArrayList<>();
for (int i=0;i<myList.size();i++) {
//Check if all the values are integers
try {
/*Problem area----->*/ intList.add(Integer.parseInt( (String) myList.get(i)));
} catch (Exception e) {
throw new FormatException();
}
}
答案 1 :(得分:0)
String s = strLine;
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(" ")));
List<Integer> intList = new ArrayList<Integer>();
for (String stringPart : myList) {
//Check if all the values are integers
try {
int parsedString = new Integer(stringPart);
intList.add(parsedString);
} catch (NumberFormatException e) {
//do nothing
}
}
答案 2 :(得分:0)
1)你还没有创建一个arraylist myList,所以先创建它
2)你使用的是像使用索引的数组一样的列表但它有add方法所以使用它
3)在Java中没有名为formatException的异常,在您的情况下使用NumberFormatException
以下是具有上述所有修改的正确程序
String s = "12 23 34";
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(" ")));
List<Integer> intList = new ArrayList<>();
for (int i=0;i<myList.size();i++) {
//Check if all the values are integers
try {
/*Problem area----->*/
intList.add( Integer.parseInt( (String) myList.get(i) ));
} catch (Exception e) {
throw new NumberFormatException ();
}
}
答案 3 :(得分:-1)
intList是和ArrayList,你不能通过[]访问它。那是一个数组运算符。而是设置为索引尝试 p>
intList.add(i, Integer.parseInt( (String) myList.get(i) ));