Делал и без рег выражений чисто через методы String и исключения все то же - работает, но не проходит валидацию
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while(true) {
String value = reader.readLine();
if(value.equals("end")) break;
try {
if(value.matches("\\-?\\d+\\.\\d+")) print(Double.parseDouble(value));
else if(value.matches("\\-?\\d+")) {
if(Integer.parseInt(value) > 0 && Integer.parseInt(value) < 128)
print(Short.parseShort(value));
else if(Integer.parseInt(value) <= 0 || Integer.parseInt(value) >= 128)
print(Integer.parseInt(value));
}
else print(value);
}
catch(NumberFormatException e) {
print(value);
}
}
//напиште тут ваш код
}
вывод на консоль
Это тип Double, значение 2.2
Это тип String, значение 65-.98
Это тип String, значение 98.9?
Это тип String, значение !65.0
Это тип String, значение "09
Это тип String, значение 4444444444444444444444444444444444444
Это тип Integer, значение 234
Это тип short, значение 21
Это тип Integer, значение -10
Это тип String, значение коко
Это тип Integer, значение 456
Это тип Integer, значение 0
Это тип String, значение 12f
Это тип String, значение 5745L
Это тип Double, значение 0.234
Это тип Double, значение 123.0
Это тип String, значение 12/3
Это тип short, значение 1
Это тип Integer, значение 123456
package com.javarush.task.task15.task1519;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Разные методы для разных типов
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while(true) {
String value = reader.readLine();
if(value.equals("end")) break;
try {
if(value.matches("\\-?\\d+\\.\\d+")) print(Double.parseDouble(value));
else if(value.matches("\\-?\\d+")) {
if(Integer.parseInt(value) > 0 && Integer.parseInt(value) < 128)
print(Short.parseShort(value));
else if(Integer.parseInt(value) <= 0 || Integer.parseInt(value) >= 128)
print(Integer.parseInt(value));
}
else print(value);
}
catch(NumberFormatException e) {
print(value);
}
}
//напиште тут ваш код
}
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);
}
}