这将通过读取空间或换行符分隔号码。只需换行符或按回车键即可终止扫描。
Scanner sc = new Scanner(System.in);
Pattern newlineOrSpace = Pattern.compile(System
.getProperty("line.separator") + "|\\s");
sc.useDelimiter(newLineOrSpace);
List<Double> numbers = new ArrayList<Double>();
System.out.println("Enter numbers:");
while (sc.hasNextDouble()) {
numbers.add(sc.nextDouble());
}
for (Double number : numbers) {
System.out.println(number);
}
样品试验
Enter numbers:
1 2 3
5.5 7.2
.1
1.0
2.0
3.0
5.5
7.2
0.1
编辑
,你可以输入数字到单独的变量:
Scanner sc = new Scanner(System.in);
Pattern newlineOrSpace = Pattern.compile(System
.getProperty("line.separator") + "|\\s");
sc.useDelimiter(newlineOrSpace);
System.out.print("Enter a, b, c: ");
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();
System.out.format("a = %f, b = %f, c = %f", a, b, c);
样品试验
Enter a, b, c: 1.0 5 9
a = 1.000000, b = 5.000000, c = 9.000000
这不坏:)。但是,当我想要使用这种格式: '\t \t'扫描仪sc =新扫描仪(System.in); \t \t Pattern newlineOrSpace = Pattern.compile(System.getProperty(“line.separator”)+“| \\ s”); \t \t sc.useDelimiter(newlineOrSpace); \t \t double a = sc.nextDouble(); \t \t double b = sc.nextDouble(); \t \t double c = sc.nextDouble();' 它不工作...抛出异常。 我想使用这种格式,因为在这之后我必须计算一个二次方程。 – blaces
我已经添加了一个输入保存到离散变量的例子。它应该工作正常。 –
谢谢你的回答! – blaces