Пробовал даже выводить стринг, если выходит за рамки значений int и double, но всё равно не проходит требования задачи. У кого-нибудь есть идеи?
package com.javarush.task.task15.task1519;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/*
Разные методы для разных типов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String line;
do {
line = reader.readLine();
try {
double valNumber = Double.parseDouble(line);
String lineSub = line.substring(line.indexOf(".")+1,line.length());
if (lineSub.equals("")) throw new NumberFormatException();
if (line.contains(".")) print(valNumber);
else if (valNumber>0 && valNumber<128) print((short) valNumber);
else if (valNumber<=0 || valNumber>=128) print((int)valNumber);
else throw new NumberFormatException();
}catch (NumberFormatException e){
print(line);
}
}while (!line.equals("exit"));
}
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);
}
}