2010-10-10 124 views
0

我知道你可以在Java中設置掃描儀的輸入。 是否可以將數組提供給掃描儀?Java掃描儀()從陣列讀取

+0

什麼類型的數組?字符串數組?代表字符串的字符數組? – aioobe 2010-10-10 09:51:51

+0

它已經解決了。我的主要問題是我不明白掃描儀只接受字符串,我認爲我必須創建一個新的對象。 – 2010-10-10 10:13:33

回答

1

在陣列上使用Arrays.toString()方法。 例如:

int[] arrayOfInts = {1, 2, 3}; 
Scanner s = new Scanner(Arrays.toString(arrayOfInts)); 

while (s.hasNext()) { 
    System.out.println(s.next()); 
} 

會打印出:

[1, 
2, 
3] 
1

沒有內置任何東西,但您可以確定join陣列中的所有元素,並將結果字符串傳遞到Scanner constructor

具有更好性能的解決方案,但更大的時間投資是包裝你的數組,並跟蹤當前元素的數組,並在該元素的字符串表示的當前位置在實施Readable。然後,您可以使用來自可讀對象的掃描儀reads來填充緩衝區中的數據。這種方法可以讓你懶惰地將數據從你的陣列傳輸到掃描器,但代價是你需要編寫一些代碼。

+0

在我開始閱讀任何內容之前,數組是完全預定義的,所以我打算繼續加入。我應該將元素與\ n分開嗎? – 2010-10-10 09:45:25

0
public class Totalsum { 

    public static void main(String[] args){ 

    int[] y={6,1,5,9,5}; 
    int[] z={2,13,6,15,2}; 

    int Total= sumLargeNumber(y,z,5); 

    System.out.println("The Total sum is "+Total); //call method 
} 

public static int sumLargeNumber(int a[], int b[], int size) { 
    int total=0; 

    for(int i=0; i< size; i++) { 
    if(a[i] > b[i]){ 
     total=total+a[i]; 
    } 

    else { 
     total=total+b[i]; 
    } 
    } 
    return total; 
}