Валідатор не пропускає по 4 пунктах.
Хочу саме підказку по даному варіанту. Або варіант вхідних який не спрацює
Правильного рішення поки що не бачив, але підозрюю там варіанти try/catch, де print зі стрічкою в кожному catch-і.
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 string = null;
while (!(string = reader.readLine()).equalsIgnoreCase("exit")) {
if (!isDigit(string))
print(string);
else {
if (string.contains("."))
print(Double.parseDouble(string));
else if (Short.parseShort(string) > 0 && Short.parseShort(string) < 128)
print(Short.parseShort(string));
else if (Integer.parseInt(string) <= 0 || Integer.parseInt(string) >= 128)
print(Integer.parseInt(string));
}
}
}
//перевіряємо чи ВСІ символи цифри (викидаємо "." та "-" / крапку та знак мінус)
static boolean isDigit(String string) {
String s = string.replace(".", "").replace("-", "");
boolean isDig = true;
for (int i = 0; i < s.length() && isDig; i++) {
if (!Character.isDigit(s.charAt(i))) {
isDig = false;
}
}
return isDig;
}
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);
}
}