public class Solution { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); while (true) { String s = reader.readLine(); if (s.equals("exit")) break; else { try { if (s.contains(".")) print(Double.parseDouble(s)); else if (Short.parseShort(s) > 0 && Short.parseShort(s) < 128) print(Short.parseShort(s)); else if (Integer.parseInt(s) <= 0 || Integer.parseInt(s) >= 128) print(Integer.parseInt(s)); else print (s); } catch (Exception e) { print(s); } } } } Если взять число -1, то по условиям задачи оно должно вызвать метод для Integer. В idea всё нормально при таком порядке строк: 1.1 Это тип Double, значение 1.1 100 Это тип short, значение 100 -1 Это тип Integer, значение -1 test Это тип String, значение test exit