所以我想生成一个程序,在该程序中,用户被提示输入任意数量的Double值,程序将这些值存储在一个数组中直到EOF(当用户按下ctl + d时),然后打印这些数字的总和以输出。这就是我到目前为止所做的:
import java.io.*;
import java.util.*;
public class ArrayExample {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter line: ");
ArrayList<Double> nums = new ArrayList<Double>();
double input = keyboard.nextDouble();
while (input.hasNextLine()) {
input = keyboard.nextDouble();
}
System.out.print(nums);
double sum = 0;
for (int i = 0; i < nums.size(); i++) {
sum+=Integer.parseInt(nums.get(i));
System.out.println(sum);
}
}
}
我的问题是如何使用循环来保持读取输入双精度直到EOF,ArrayList是存储用户输入的最佳方式,并且这是获得总和的最正确方法吗?谢谢!
答案 0 :(得分:1)
根据下面的代码段修改 if (addressList.size() > 0) {
Address address = addressList.get(0);
LatLng latLng = new LatLng(address.getLatitude(), address.getLongitude());
map.addMarker(new MarkerOptions().position(latLng).title("Find Pro"));
map.animateCamera(CameraUpdateFactory.newLatLng(latLng));
}
和while
循环。在while循环中,只需直接使用Scanner的for
方法,并在输入时为 Arraylist 添加值。在hasNextDouble()
循环中,您不需要将值解析为整数,因为sum是双精度数,它是您的Arraylist的数据类型。 Arraylist适合您的情况,因为您不确定您将从用户获得多少值; Arraylists可以调整大小。
for