Попробовал на тесте- все работает корректно.
Валидатор не пропускает по двум пунктам:
1.Если введенная строка может быть корректно преобразована в число типа Integer и полученное число меньше или равно 0 или больше или равно 128 - должен быть вызван метод print(Integer value).
2. Во всех остальных случаях должен быть вызван метод print(String 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 bufferedReader = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String s = bufferedReader.readLine();
if (s.equals("exit")) break;
try{
if (s.contains(".")) {
Double.parseDouble(s);
print(Double.parseDouble(s));
} else if (Short.parseShort(s) < 128 && Short.parseShort(s) > 0) {
print(Short.parseShort(s));
} else if (Integer.parseInt(s) >= 128 || Integer.parseInt(s) <= 0) {
print(Integer.parseInt(s));
}
}
catch(Exception e){
print(s);
}
}
}
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);
}
}