2011-09-18 66 views
0

如何在Java中的一个输入行中读取某些变量?如何在一个输入行中读取一些变量? (Java)

对不起,我的入门英

Forexample: Enter a, b, c: 1.0 3 1 <Enter> 然后我想的一个= 1.0,B = 3,C = 1。

如何在Java(和C#)中实现?

我试图以这种形式,但是当输入数是实数

Scanner sc = new Scanner(System.in).useDelimiter(" "); 
    double a = sc.nextDouble(); 
    double b = sc.nextDouble(); 
    double c = sc.nextDouble(); 
    sc.close() 

回答

1

这将通过读取空间或换行符分隔号码。只需换行符或按回车键即可终止扫描。

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 
+0

这不坏:)。但是,当我想要使用这种格式: '\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

+0

我已经添加了一个输入保存到离散变量的例子。它应该工作正常。 –

+0

谢谢你的回答! – blaces

2

我认为您的解决方案是相当不错的它不工作。更好地采取“;”作为分隔符而不是“”,这将使其更加清晰。如果我想输入一个3.5的数字,我必须使用“,”而不是“。”。而且我认为你必须在最后一个号码后再使用分隔符。

这是我的测试与您的代码: 输入: 1,3; 4; 5; 输出: - > 1.3 - > 4.0 - > 5.0

+0

是的我知道,但输入是由计算机以这种格式(空格之间的数字)生成的。这是一个大学功课... – blaces

相关问题