从Java键盘中读一遍

时间:2018-09-13 10:34:27

标签: java

如何在Java中从键盘读取double变量?我正在尝试解决此问题,但是没有用。它说:

  

线程“主”中的异常java.util.Scanner.nrow(Scanner.java:1485)处java.util.Scanner.throwFor(Scanner.java:864)处java.util.Scanner .nextDouble(Scanner.java:2413)位于Main.main(Main.java:7)

我的代码

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in).useLocale(Locale.US);
        String s = scanner.next();
        double d = scanner.nextDouble();
        int myI = scanner.nextInt();

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

    }
}

5 个答案:

答案 0 :(得分:2)

试图繁殖,没有运气。我认为问题出在您的输入上。 这是我尝试过的:

输入:

s

4.51

2

输出:

String: s
Double: 4.51
Int: 2

在您的代码中,第一个扫描程序使用string,第二个扫描程序使用double,第三个扫描程序使用int

答案 1 :(得分:1)

尝试一下:

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

class DoubleDouble
{
   public static void main (String[] args)
   {
      double value;
      Scanner scan = new Scanner( System.in );

      System.out.print("Enter a double:");
      value = scan.nextDouble();

      System.out.println("value: " + value +" twice value: " + 2.0*value );
    }
}

并确保您键入:例如:3.14 所以圆点应该是一个点

答案 2 :(得分:0)

您还可以使用BufferedReader类将Double作为输入。 可以视为

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String s=br.readLine();

Double d=Double.parseDouble(br.readLine());

int i=Integer.parseInt(br.readLine());

答案 3 :(得分:0)

您编写的代码是完全正确的,您应该检查输入顺序 串 双 诠释

答案 4 :(得分:0)

由于输入顺序,您收到此错误。确保您输入的是一个字符串,双倍然后是整数。按照特定的顺序。