Здравствуйте, пишу код в Intelij. Уже не первый раз сталкиваюсь с проблемой: readLine не правильно считывает ввод (Ставит в конце строчки перенос строки) отчего следующий readline не срабатывает (становится автоматически пустым). После второго вызова на 29 строке выдаёт ошибку :
Если важно : сепаратор LF и кодировка UTF-8
Решено: проблема оказалась в последней версии Intelij (2022.1.1) . Уже вышел фикс (2022.1.2)
Если важно : сепаратор LF и кодировка UTF-8
Решено: проблема оказалась в последней версии Intelij (2022.1.1) . Уже вышел фикс (2022.1.2)package com.javarush.task.jdk13.task07.task0726;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Scanner;
/*
Нужно исправить программу, чтобы компилировалась и работала
*/
public class Solution {
public final static ArrayList<Cat> CATS = new ArrayList<>();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> stats = new ArrayList<>();
// Scanner scanner = new Scanner(System.in);
while (true) {
String name = reader.readLine();
// String name = scanner.nextLine();
if (name == null || name.isEmpty()) {
break;
}
for (int i = 0; i < 3; i++) {
stats.add(Integer.parseInt(reader.readLine()));
// stats.add(scanner.nextInt());
}
Cat cat = new Cat(name, stats.get(0), stats.get(1), stats.get(2));
CATS.add(cat);
}
printList();
}
public static void printList() {
for (Cat cat : CATS) {
System.out.println(cat);
}
}
public static class Cat {
private String name;
private int age;
private int weight;
private int tailLength;
Cat(String name, int age, int weight, int tailLength) {
this.name = name;
this.age = age;
this.weight = weight;
this.tailLength = tailLength;
}
@Override
public String toString() {
return "Cat's name: " + name + ", age: " + age + ", weight: " + weight + ", tail: " + tailLength;
}
}
}