實際獲得用戶輸入的資源非常豐富。 Check out this post。創建陣列我會做這樣的事情:
public int[] getCoord(int[] coords) {
coords[0] = getInt("Please enter x coordinate:");
coords[1] = getInt("Please enter y coordinate:");
return coords;
}
這被稱爲是這樣的:
coords = getCoord(coords);
這將使用新值替換COORDS的舊值。
一個getInt
方法是這樣的:
private int getInt(String prompt) {
Scanner scanner = new Scanner(System.in);
System.out.println(prompt);
int in = scanner.nextInt();
scanner.close();
return in;
}
當然,這可以合併成避免了掃描儀的反覆打開和關閉一個方法,但如果你在代碼中使用getInt()
其他地方,這可能仍然是首選解決方案。
如果您被迫使用單獨的方法,我們寧願不必重複打開和關閉掃描器,而是從getCoord類傳遞掃描器。
public int[] getCoord(int[] coords) {
Scanner scanner = new Scanner(System.in);
coords[0] = getX(scanner, coords);
coords[1] = getY(scanner, coords);
scanner.close()
return coords;
}
和示例獲得方法:
private void getX(Scanner scanner, int[] coords) {
System.out.println("Please enter x coordinate:");
coords[0] = scanner.nextInt(); //Change 0 index to 1 for getY
}
二維數組已經生成,函數只需要在用戶通過掃描器放入數組的座標中放置一個值。 – JimiiBee
然後而不是創建一個新的數組,傳入舊數組!我現在編輯以顯示我的意思。 – Scott
我明白了。我需要做兩個函數才能爲2D數組獲得正確的座標。這隻適用於1d陣列的權利?我會以任何方式接受你的回答,因爲它讓我明白該怎麼做。 – JimiiBee