对于Java语言,如何将下一个字符串添加到列表中

对于Java语言,如何将下一个字符串添加到列表中,java,arraylist,Java,Arraylist,我想做的是将文件“star.txt”中的单词转换成一个列表数组。当我编译这些代码时,它告诉我hasNext是一个非法语句。我在想怎么修 public static ArrayList<String> fun(File file) throws Exception { ArrayList<String> result = new ArrayList<String>(); Scanner s = new Scanner(new File("st

我想做的是将文件“star.txt”中的单词转换成一个列表数组。当我编译这些代码时,它告诉我hasNext是一个非法语句。我在想怎么修

public static ArrayList<String> fun(File file) throws Exception { 
    ArrayList<String>  result = new ArrayList<String>();
    Scanner s = new Scanner(new File("star.txt"));
    while (s.hasNext()) {
        result = s.addNext();
    }
    return result;
}
publicstaticarraylistfun(文件)引发异常{
ArrayList结果=新建ArrayList();
扫描仪s=新扫描仪(新文件(“star.txt”);
而(s.hasNext()){
结果=s.addNext();
}
返回结果;
}

hasNext方法没有问题。编译器抱怨缺少
addNext
方法。您应该改用
next()

这个方法还返回文件中的下一个单词,所以您需要将它存储在列表中。使用

while (s.hasNext()) {
    result.add(s.next());
}

由于Java8,您还可以使用
s.forEachRemaining(result::add)
而不是这个循环。

hasNext()没有问题。
addNext()
但是,
Scanner
上没有方法,因此我相信您在那里会遇到错误。请查看
Scanner的文档。next
…如果文件名有问题,
s
是否为扫描仪?如果失败,
s.hasNext()
会是一个错误,因为
s
的结果值不是使用该方法的
Scanner
对象吗?@toothlessresebel什么?如果构造一个
扫描仪
对象,它将是一个
扫描仪
。不能仅仅因为它“失败”就将其实例化为其他类型。@Jashaszun是Java的一个新问题。在非类型化语言中,它可能是空的、未定义的或其他东西。@Judie,因为您是堆栈溢出方面的新手,所以我假设您不了解该机制。简言之,您可以将其中一个答案标记为对您有效的解决方案。