...но компилятор не пропускает пункт 3, хотя точку хорошо считывает, и вызывает метод print(Double), не могу разобраться.
package com.javarush.task.task15.task1519;
import java.io.*;
/*
Разные методы для разных типов
*/
public class Solution {
public static void main(String[] args) throws IOException {
String N = "exit";
String txt = "";
//int input1 = 0;
try (
BufferedReader buff = new BufferedReader(new InputStreamReader(System.in))
)
{
while (!(txt.equals(N)))
{
txt = buff.readLine();
System.out.println("ввели " + txt);
int index = txt.indexOf(".");//-1(ненашел) and 1(нашел)
System.out.println("index = " + index);
if (index == 1) {
double d = 0;
d = Double.parseDouble(txt);
print(d);
} else if (index == -1)
{boolean b = false;
for (char s : txt.toCharArray()) {
if (Character.isDigit(s)) {
b = true;
}
}
if (b == true){
int i = Integer.parseInt(txt);
if (0 < i && i < 128) {
short s = (short) i;
print(s);
} else if (i <= 0 || i >= 128) {
print(i);
}} else print(txt);
}
}
}
}
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);
}
}
/*
if (txt.chars().allMatch(x->Character.isDigit(x)) == false) {
print(txt);
}*/