Java не считывает дробные числа

Я в Java новичок и столкнулся с тем, что Java не хочет считывать с клавиатуры дробные числа. Синтаксис скопепастен с интернета про то как вводить с клавиатуры числа типа double. Но у меня сё ровно не считывает. В чём может быть проблема?`

    import java.util.Scanner;

public class Test111 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        double i = scanner.nextDouble();
        System.out.println(i);
    }
}

Ответы (1 шт):

Автор решения: Agzam4

Скорее всего, Вы используете ,, а не ., но я добавил защиту, и теперь Вы можете вводить, что угодно (даже буквы (он их пропустит)), а ,, заменит на .:

    Scanner scanner = new Scanner(System.in);
    
    char[] cs = scanner.nextLine().replace(',', '.').toCharArray();
    
    String allowed = "0123456789";
    boolean point = false;
    String newStr = "0";
    for (char c : cs) {
        if(allowed.indexOf(c) != -1) {
            newStr += c;
        }else if (c == '.') {
            if(point)
                break;
            newStr += '.';
            point = true;
        }
    }
    double d = Double.valueOf(newStr);
    System.out.println(d);
→ Ссылка