实际获得用户输入的资源非常丰富。 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