Уже решил таким вот образом, но нет ли метода менее мудреного что бы разделять вызов методов?
try {
                d = Double.parseDouble(s);
                if(d%1 == 0&& !s.contains(".")) {
                    if (d > 0 && d < 128) {
                        short sh = (short) d;
                        print(sh);
                    }
                    else {
                        int i = (int)d;
                        print(i);
                    }
                } else{
                    print(d);
                }
            }catch (Exception e){
                print(s);
            }