Java-接受字符输入时出现意外中断

时间:2018-07-13 22:21:10

标签: java

Java的新手,很难弄清为什么它不起作用,在获取用户输入的一半途中它意外停止。我已经评论了它的坏处。错误信息 : “线程“主”中的异常java.util.InputMismatchException”

有人可以帮忙吗?

import java.util.Scanner;

public class BasicInput {
   public static void main(String[] args) {
      Scanner scnr = new Scanner(System.in);

      //Initializations
      int userInt = 0;
      double userDouble = 0.0;
      String userString = "";
      char character = '?';

      //Take User Input
      System.out.println("Enter integer: ");
      userInt = scnr.nextInt();
      System.out.println("Enter double: ");
      userDouble = scnr.nextInt();

      /* ERROR OCCURS HERE */

      System.out.println("Enter character: ");
      character = scnr.next().charAt(0);
      System.out.println("Enter string: ");
      userString = scnr.next();

      //Print User Input

      System.out.println(userString);
      System.out.print(character);
      System.out.print(userDouble);
      System.out.print(userInt);

      //Cast double to an integer
      int userInt2 = 0;
      userInt2 = (int)userDouble;
      System.out.print(userInt2);

      return;
   }
}

2 个答案:

答案 0 :(得分:0)

读取int而不是double,如下所示将其更改为double

   //Take User Input
  System.out.println("Enter integer: ");
  userInt = scnr.nextInt();
  System.out.println("Enter double: ");
  userDouble = scnr.nextDouble();

答案 1 :(得分:0)

将scnr.nextInt()的值分配给userDouble时发生错误。您应该使用scnr.nextDouble()。同样,当您键入两次时,请使用“,”作为分隔符,而不是“。”。
它应该可以工作:)