Все условия работают, программа определяет String когда нужно, но валидатор не принимает решение по последнему пункту.
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));
String inp = "";
while (!inp.equals("exit")){
inp = reader.readLine();
boolean isString = false;
if (inp.contains(".")) {
try {
Double d = Double.parseDouble(inp);
print(d);
} catch (NumberFormatException e) {
isString = true;
}
}
else {
try {
Integer i = Integer.parseInt(inp);
if (0 < i && i < 128) {
short s = Short.parseShort(inp);
print(s);
}
else print(i);
} catch (NumberFormatException e) {
isString = true;
}
}
String str = inp;
if (isString) print (str);
}
}
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);
}
}