Java - 让程序创建双精度的简单方法

时间:2013-09-21 13:47:14

标签: java integer double

程序的输入包含n个双精度数。 我希望每个双重存储为:a(n), where n = n++

像这样:

input 6,57  4,56 1,23

应存储为:

a(0) = 6,57
a(1) = 4,56
a(2) = 1,23
etc.

这是我试过的:

double a;
int n = 0;

scanner = new Scanner(System.in);
a(n) = scanner.nextDouble();

while (scanner.hasNextDouble()) {
  a(n) = scanner.nextDouble();
  n++;
  break;
}

这不行, 有任何想法吗? 提前谢谢。

2 个答案:

答案 0 :(得分:0)

您需要使用数组。数组是固定大小的,因此您必须事先知道元素的数量。

使用double[] a=new double[size]创建数组,其中size是您想要的数组大小。

现在可以使用a[n]=scanner.nextDouble();设置数组的值。请注意,n将从0转到size-1。您也可以通过这种方式读出值,例如`System.out.println(n [2]);

答案 1 :(得分:0)

  1. 你不知道大小的重要性,所以我建议使用List<Double>而不是数组。
  2. 您有本地格式的数字(由,分隔),因此请使用NumberFormat类来获取java格式。
  3. 数字用空格分隔,并存储在输入的一行中,因此请使用next()方法。
    试试这个代码。

    List<Double> a = new ArrayList<Double>();
    scanner = new Scanner(System.in);        
    while (scanner.hasNext()) {
       String number  = scanner.next();
       NumberFormat numberFormat = NumberFormat.getInstance();
       a.add(numberFormat.parse(number).doubleValue());
    }