2011-09-18 125 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

相關問題