Я писал этого Франкинштейна почти час, он же работает. Чего валидатору не нравиться?
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));
while( true)
{
String fromConsole= reader.readLine();
if(fromConsole.equals("exit")){
reader.close();
break;
}
if((fromConsole.indexOf("."))!= -1)
{
Double value=Double.valueOf(fromConsole);
print(value);
continue;
}
int i=0;
try {
i=Integer.parseInt(fromConsole);
}
catch (NumberFormatException e)
{
print(fromConsole);
continue;
}
if(i>0 && i<128)
{
short value=Short.valueOf(fromConsole);
print(value);
}
else if(i<0 || i==0 || i>128 || i==128)
{
Integer value=i;
print(value);
}
else {
print(fromConsole);
}
}
}
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);
}
}