检查List中的非整数值

时间:2014-05-09 15:23:57

标签: java

我正在尝试迭代一个字符串列表,检查其中一个是否无法解析为整数。如果其中一个无法解析为整数,则抛出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();
            }
        }

4 个答案:

答案 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,你不能通过[]访问它。那是一个数组运算符。而是设置为索引尝试

intList.add(i, Integer.parseInt( (String) myList.get(i) ));