0

我正在尝试将文件中的整数添加到 ArrayList 中,而 list.add 不想工作。我只尝试了大约一千种不同的方法来编写这段代码。该list.add(s.next());行在 Eclipse 中给出错误,

The method add(Integer) in the type List<Integer> is not applicable for the arguments (String).

听起来我好像在尝试用只能用字符串完成的整数做一些事情,但我需要它们保持整数,如果我在过去的 5 天里没有一直在搜索、学习和用 Java 死记硬背的话我大概能理解它的意思。

我可以让它与常规数组一起正常工作,但我的 ArrayList 集合真的很痛苦,我不确定我做错了什么。任何帮助将非常感激。

提前致谢。


import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class MyCollection {
    @SuppressWarnings({ "rawtypes", "unchecked" })
    public static void main(String[] args)  {

        List<Integer> list = new ArrayList();

        //---- ArrayList 'list'
        Scanner s = new Scanner(new File("C:/Users/emissary/Desktop/workspace/stuff/src/numbers.txt"));

        while   (s.hasNext())   {
            list.add(s.next());
        }
        s.close();

        Collections.sort(list);
        for (Integer integer : list){
            System.out.printf("%s, ", integer);
        }
    }

}
4

3 回答 3

3

s.next()指返回String类型的方法。由于 Java 是强类型的,int因此必须从用户处返回整数或类型。s.nextInt()会工作得很好。

于 2013-05-06T14:33:18.220 回答
1

您正在尝试将 a 添加String到 s 列表中Integer

s.next()将下一个标记作为字符串返回,显然不能将其添加到整数列表中。

于 2013-05-06T14:33:08.873 回答
1

尝试这个:

    List<Integer> list = new ArrayList<Integer>();

    //---- ArrayList 'list'
    Scanner s = new Scanner(new File("C:/Users/emissary/Desktop/workspace/stuff/src/numbers.txt"));

    while   (s.hasNextInt())   {
        list.add(s.nextInt());
    }
    s.close();

    Collections.sort(list);
    for (Integer integer : list){
        System.out.printf("%s, ", integer);
    }

s.hasNextInt() 检查扫描仪的下一个数据中是否有整数。并且要将整数添加到整数列表中,您必须使用返回整数但不是字符串的 nextInt 对不起我的英语不好

于 2013-05-06T14:36:16.140 回答