繁体   English   中英

为什么我在这段代码中得到 Input MIsmatch Exception?

[英]why i am getting Input MIsmatch Exception in this code?

我只是想从键盘读取整数、双精度、字符串值。 它只适用于整数和双精度。 但是当涉及到字符串时,它抛出了一个输入不匹配异常,所以我无法从键盘读取字符串。

import java.util.Scanner;
import java.util.*;

public class Solution {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = scan.nextInt();
        double d= scan.nextInt();
        String s=scan.nextLine();

        // Write your code here.

        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }
}

您已经使用了double d= scan.nextInt();

而是使用

double d= scan.nextDouble();

此外,字符串对于以下输入和输出工作正常:1 1 Hello

字符串:你好

双倍:1.0

智力:1

首先,您正在为 double 执行scan.nextInt() 不是最好的做法。 其次,尝试scan.next()以获取任意类型的标记。

        int i = scan.nextInt();
        double d= scan.nextDouble();
        String s=scan.next();

请检查以下代码。 它对我有用。

      public class Solution {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        System.out.println("enter i value ");
        int i = scan.nextInt();
        System.out.println("enter d value ");
        double d= scan.nextDouble();
        System.out.println("enter s value ");
        String s=scan.next();


        // Write your code here.

        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }

}

我认为String s=scan.nextLine(); 使用来自随后调用的换行符double d= scan.nextInt(); .

这是我的两分钱。

double d = scan.nextInt();
scan.nextLine();
String s = scan.nextLine();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM