Валидатор пишет......: Если введенная строка может быть корректно преобразована в число типа Integer и полученное число меньше или равно 0 или больше или равно 128 - должен быть вызван метод print(Integer value).
В идее всё корректно отрабатывает, но...
Нужны мысли, своих уже нет
package com.javarush.task.task15.task1519;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
/*
Разные методы для разных типов
*/
public class Solution {
public static void main(String[] args) throws IOException {
//напиште тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while (true){
String txt = reader.readLine();
if(txt.equals("exit"))break;
try {
if(!isNumber(txt) && !(txt.contains("."))){
print(txt);
}
else if (txt.contains(".")){
print(Double.parseDouble(txt));
}
else if (Integer.parseInt(txt) >= 128 || Integer.parseInt(txt) <= 0){
if (Integer.parseInt(txt) >= Integer.MIN_VALUE && Integer.parseInt(txt) <= Integer.MAX_VALUE) {
print(Integer.parseInt(txt));
}
}
else if ((short) Integer.parseInt(txt) > 0 && (short) Integer.parseInt(txt) < 128) {
print((short) Integer.parseInt(txt));
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
}
}
public static void print(Double value) {
System.out.println("Это тип Double, значение " + value);
}
public static void print(String value) {
System.out.println("Это тип String, значение " + value);
}
public static void print(short value) {
System.out.println("Это тип short, значение " + value);
}
public static void print(Integer value) {
System.out.println("Это тип Integer, значение " + value);
}
public static boolean isNumber(String str) {
if (str == null || str.isEmpty()) return false;
for (int i = 0; i < str.length(); i++) {
if (!Character.isDigit(str.charAt(i))) return false;
}
return true;
}
}