Как обрабатывать InputMismatchException? - PullRequest
0 голосов
/ 12 февраля 2012

Вот пример Брюса Экеля Thinking in Java, 4-е издание

import java.io.BufferedReader;
import java.io.StringReader;
import java.util.Scanner;

public class BetterRead {
  public static void main(String[] args) {
    BufferedReader input = new BufferedReader(new StringReader("Sir Robin of Camelot\n22 1.61803"));
    Scanner stdin = new Scanner(input);
    System.out.println("What is your name?");
    String name = stdin.nextLine();
    System.out.println(name);
    System.out.println("How old are you? What is your favorite double?");
    System.out.println("(input: <age> <double>)");
    int age = stdin.nextInt();
    double favorite = stdin.nextDouble();
    System.out.println(age);
    System.out.println(favorite);
    System.out.format("Hi %s.\n", name);
    System.out.format("In 5 years you will be %d.\n",
      age + 5);
    System.out.format("My favorite double is %f.",
      favorite / 2);
  }
}

здесь вывод

 What is your name?
Sir Robin of Camelot
How old are you? What is your favorite double?
(input: <age> <double>)
Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:909)
    at java.util.Scanner.next(Scanner.java:1530)
    at java.util.Scanner.nextFloat(Scanner.java:2388)
    at betterread.BetterRead.main(BetterRead.java:21)
Java Result: 1

Я довольно новичок в Java, но, как вы можете видетьв этом примере int следует за buy double.Так что это может работать правильно.Но все равно выдает InputMismatchException.Как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 12 февраля 2012

Кажется, проблема в вашей локали, так как 1.61803, кажется, не является действительным двойником для нее. Попробуйте с 1,61803.

0 голосов
/ 17 ноября 2012

Я думаю, что проблема в линии может быть с Scanner stdin = new Scanner(input);, вот вместо этого попробуйте это: Scanner stdin = new Scanner(System.in);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...