如何通过Scanner输入的X、Y坐标查找指定二维数组中的值?
用Java实现二维数组坐标查找功能
没问题,我帮你搞定这个需求!下面是完整的可运行代码,包含了Scanner输入坐标、边界校验以及对应值的查找逻辑:
import java.util.Scanner; public class GridValueLookup { public static void main(String[] args) { // 定义你的网格数组 int[][] grid = { {1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,1,1,1,0,1,0,0,0,0,0,1}, {1,0,1,0,0,0,1,0,1,1,1,0,1}, {1,0,0,0,1,1,1,0,0,0,0,0,1}, {1,0,1,0,1,1,1,0,1,0,1,0,1}, {1,0,0,0,0,0,0,0,0,0,1,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1} }; Scanner scanner = new Scanner(System.in); // 提示用户输入坐标,这里明确说明:Y是行索引,X是列索引 System.out.print("请输入Y坐标(行号,范围0-6):"); int y = scanner.nextInt(); System.out.print("请输入X坐标(列号,范围0-12):"); int x = scanner.nextInt(); // 边界检查,避免数组越界异常 if (y >= 0 && y < grid.length && x >= 0 && x < grid[y].length) { int value = grid[y][x]; System.out.printf("坐标(Y:%d, X:%d)对应的值是:%d%n", y, x, value); } else { System.out.println("输入的坐标超出网格范围!请检查后重新输入。"); } scanner.close(); } }
关键说明:
- 二维数组在Java中是
grid[行][列]的结构,所以我这里把Y对应行索引,X对应列索引,你可以根据自己的习惯调整,但一定要保持输入和数组访问的对应关系一致。 - 加入了边界校验,这很重要!如果用户输入的坐标超出数组的行/列范围,会直接抛出
ArrayIndexOutOfBoundsException,提前判断可以避免程序崩溃,同时给用户友好提示。 - 代码里标注了坐标的有效范围(Y:0-6,X:0-12),因为你的grid数组有7行(索引0到6),每行13列(索引0到12)。
内容的提问来源于stack exchange,提问作者Charitha.R
相关产品推荐
相关产品推荐

