Уже решил таким вот образом, но нет ли метода менее мудреного что бы разделять вызов методов?
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);
}