В чем может быть ошибка?
Когда парсим или в другой момент?
После ввода слова "Barsik" выпадает следующее exception:
Barsik
Exception in thread "main" java.lang.NumberFormatException: For input string: "Barsik"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at com.javarush.task.task07.task0721.Solution.getInts(Solution.java:43)
at com.javarush.task.task07.task0721.Solution.main(Solution.java:19)
Process finished with exit code 1
Код по сравнению с первоначальным вот так я исправил:
package com.javarush.task.task07.task0726;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Не компилируется задача про котиков
*/
public class Solution {
public final static ArrayList<Cat> CATS = new ArrayList<>();
public static void main(String[] args) throws IOException {
// 1. Программа должна считывать данные с клавиатуры.
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String name = reader.readLine();
// 2. Если пользователь ввел пустую строку вместо имени,
// то программа должна вывести данные на экран и завершиться.
if (name == null || name.isEmpty()) {
// то программа должна вывести данные на экран и завершиться.
printList();
break;
}
// Условия 3, 4, 5.
int age = Integer.parseInt(reader.readLine());
int weight = Integer.parseInt(reader.readLine());
int tailLength = Integer.parseInt(reader.readLine());
Cat cat = new Cat(name, age , weight, tailLength);
CATS.add(cat);
}
printList();
}
public static void printList() {
for (int i = 0; i < CATS.size(); i++) {
System.out.println(CATS.get(i));
}
}
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;
}
}
}