В Intelij все проходит гладко, каждое значение соответствует своему типу.
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));
for(int i = 0; ; i++){
String string = reader.readLine();
if(string.equals("exit")){
break;
}
try {
if (Double.parseDouble(string) >= Double.MIN_VALUE && Double.parseDouble(string) <= Double.MAX_VALUE && string.contains(".")) {
print(Double.parseDouble(string));
} else if (Integer.parseInt(string) >= Integer.MIN_VALUE && Integer.parseInt(string) <= Integer.MAX_VALUE) {
if (Integer.parseInt(string) >= 0 && Integer.parseInt(string) <= 128) {
print(Short.parseShort(string));
} else print(Integer.parseInt(string));
}
}catch (NumberFormatException e) {
print(string);
}
}
}
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);
}
}