ArrayList<String> наполнять пока не остановят

217
16 февраля 2018, 18:58

Наполняю список с клавиатуры пока не введу специальное слово, потом вывожу все слова на экран кроме последнего.

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayString<String> list = new ArrayList<String>();
for(int i = 0; i < Integer.MAX_VALUE; i++){//я же не знаю сколько раз я захочу водить слова:)
if(reader.readLIne().eqals("end")) break;//то самое условие с спец. словом
else list.add(reader.readLine());//а если не оно то продолжаем
}
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
 }

ломаю голову почему выводит в консоль каждое второе слово. Добавляю вывод размера списка.

 System.out.println(list.size());
 System.out.println(list.get(i));

И знаете что? показывает, что размер списка ровно в половину меньше колличества введённых элементов. Т.е. он выводит все, вот только не все записывает в список. Кто знает почему?

Answer 1

Все проще

    String stop = "end";
    List <String> inputList = new ArrayList <>();
    Scanner sc = new Scanner(System.in);
    while(true) {
        String nextLine = sc.nextLine();
        if (stop.equals(nextLine)) break;
        else inputList.add(nextLine);
    }
    System.out.println(inputList);

P.S. А выводит через один элемент потому, что вы в коллекцию пишите через один, ведь в цикле дважды вызывается reader.readLine()

READ ALSO
Как написать морской бой с “бесконечным” полем и нейро-алгоритмом выигрышной стратегии?

Как написать морской бой с “бесконечным” полем и нейро-алгоритмом выигрышной стратегии?

Хочу написать морской бой с “бесконечным” полем, то есть поле увеличивалось бы в масштабах, количество кораблей тожеКлиент серверное приложение

248
Почему крашится приложение?

Почему крашится приложение?

В главной активности находится класс фрагмента использующий LoaderManager для загрузки данных из БД для отображения их изменения в реальном времени,...

220
Как просмотреть байт код класса в рантайме?

Как просмотреть байт код класса в рантайме?

Как получить байт код класса, это понятно, можно при помощи идеи или же дефолтными средствами

167