Я не могу понять как заставить программу преобразовывать очень длинные числа именно в Integer. К примеру если ввести 123456789123, то вывалится в консоли строка
Это тип String...
Так же пробовал следующий код:
while (true){
String string = scanner.nextLine();
if (string.equals("exit")){break;}
try {
if(Short.parseShort(string) > 0 && Short.parseShort(string) < 128){
print(Short.parseShort(string));
} else {
print(Integer.parseInt(string));
}
} catch (NumberFormatException e) {
try {
print(Double.parseDouble(string));
} catch (NumberFormatException e1) {
print(string);
}
}
}
}
Тут уже вываливает Это тип Double, значение 1.23456789123E11package com.javarush.task.task15.task1519;
import java.util.Scanner;
import java.io.IOException;
/*
Разные методы для разных типов
*/
public class Solution {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
while (true){
String string = scanner.nextLine();
if (string.equals("exit")){break;}
try {
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));
} else { throw new NumberFormatException();}
} catch (NumberFormatException e) {
print(string);
}
}
}
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);
}
}