2014-02-28 45 views
1

因此,我想要求用戶只用一個提示輸入三個值(全部爲double),並將它們存儲在一個數組中(我剛開始熟悉創建對象和數組)。這是我到目前爲止有:接受多個輸入到數組

import java.util.Scanner; 

    final int ARRAY_LIMIT=3; 

    Scanner input=new Scanner(System.in); 
    System.out.println("Enter the points and speed: "); 
    double entryVal=input.nextDouble(); 
    double[] array=new double[ARRAY_LIMIT];  

    for(int entriesCounter=0; entriesCounter<array.length; entriesCounter++) 
    { 
    array[entriesCounter]=entryVal; 
    if(array[2]==0) 
     break; 
    } 

所以,當我嘗試運行它,我輸入類似1.0,1.0,10.0,但我得到的代碼各種噴出了。重點是同時輸入所有3個值,最終在單獨的方程中使用這些值,並在第三個數字爲0時終止。但是,我想首先能夠正確地存儲這些值。我試着看過其他以前回答的問題,但找不到幫助我的東西。我對Java很陌生,所以我仍然很笨拙。任何詳細的幫助將不勝感激。

回答

2

我覺得只是讀取整個行字符串的最佳方式:

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter the points and speed: "); 
    String entryVal = input.nextLine(); 
    String[] stringArray = entryVal.split(" "); 
    double[] array = new double[stringArray.length]; 
    for (int i = 0; i < array.length; i++) { 
     array[i] = Double.valueOf(stringArray[i]); 
    } 
} 

注意,每個值必須只能由空間分隔。

+0

.split(「」)的作用是什麼?我以前沒有見過。 – LuneraEve

+0

它根據以正則表達式作爲參數將字符串分解爲字符串數組。 – libik

+0

有沒有辦法做到這一點沒有?我還沒有去了解那一點。 – LuneraEve