2015-07-06 1 views
1

Что я хочу сделать, это превратить слова в файл «star.txt» в массив списка. Когда я компилирую этот код, он сообщает мне, что hasNext является незаконным. Мне интересно, как это исправить?для языка Java, как добавить следующую строку в список

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; 
} 
+0

Нет ничего плохого в 'hasNext()'. 'addNext()' однако, не является методом на «Сканере», поэтому я верю, что вы получите там ошибку. – azurefrog

+1

проверить документы для 'Scanner.next' ..... – Reimeus

+0

Если проблема с именем файла будет' s' быть сканером? Если это произойдет, будет 's.hasNext()' быть ошибкой, потому что результирующее значение 's' не является объектом« Scanner »с этим методом? – ToothlessRebel

ответ

2

Нет проблем с методом hasNext. Компилятор жалуется на отсутствие метода addNext. Вместо этого вы должны использовать next().
Также этот метод возвращает следующее слово из файла, поэтому вам нужно сохранить его в списке. Для этого используйте

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

Поскольку Java 8 вы можете также использовать s.forEachRemaining(result::add); вместо этого цикла.

+0

Большое спасибо, ваш код работает! – Judie

+0

@Judie Добро пожаловать :) – Pshemo

+0

@Judie Поскольку вы новичок в переполнении стека, я предполагаю, что вы не знаете о механизме [принятия ответа] (http://meta.stackexchange.com/a/5235/186652). Короче говоря, вы можете отметить один из ответов как решение, которое сработало для вас. – Pshemo

Смежные вопросы