2016-08-01 4 views
0

Я хочу читать удвоенное число со стандартного ввода, но я всегда получаю это исключение:Сканирование дважды с помощью сканера в Java из консоли

java.util.InputMismatchException

import java.util.Scanner; 

public class ScanDouble { 

    public static void main(String[] args) { 
     Scanner scan = new Scanner(System.in); 
     double d = scan.nextDouble(); 
     System.out.println("Double: " + d); 
    } 
} 

Если вход целое, все в порядке, но при двойном я получаю исключение.

Исключение в потоке "основного" java.util.InputMismatchException в java.util.Scanner.throwFor (Scanner.java:864) на java.util.Scanner.next (Scanner.java:1485) в java.util.Scanner.nextDouble (Scanner.java:2413) в ScanDouble.main (ScanDouble.java:10)

+1

Как ваш вход выглядит? – Flown

+1

Что вы вводите, каково исключение? –

+0

Мои данные похожи на: 10.0 Исключение указано выше. – PyVas

ответ

3

Думает, что это проблема с десятичным разделителем. Попробуйте вход 10,0

Если вы хотите сканировать значение с точки, установите языковой стандарт Locale Великобритании:

Scanner scan = new Scanner(System.in); 
scan.useLocale(Locale.UK); 
double d = scan.nextDouble(); 
System.out.println("Double: " + d); 
Смежные вопросы