我有一个名为board
的二维数组:
2 3 4 5 6 7
3 5 6 7 8 5
3 5 6 7 8 7
我想要第2行和第3行的值,所以我这样做:
Scanner keyboard = new Scanner(System.in);
int row = keyboard.nextInt()-1;
int col = keyboard.nextInt()-1;
System.out.println(board[row][col]);
我输入2和3给了我6,但是我想要做的不是将行name
作为0, 1, 2...
这样的数字,我希望它们是A,B,C,所以它看起来像这样:
0 1 2 3 4 5 - "name"
A 2 3 4 5 6 7
B 3 5 6 7 8 5
C 3 5 6 7 8 7
因此,我不会输入row
和col
的2和3,而是输入B3。
我该如何改变?
答案 0 :(得分:1)
您可以在字符串中阅读“B3”。对于行,'B' - 'A'现在是您的董事会的索引;对于列索引,请使用“3” - “0”。
记住字符与数字的区别仅在于偏移量。
答案 1 :(得分:1)
您可以使用Map完成该操作:
Map<String, int[]> matrix = new HashMap<>();
// I assume you have a process to store the input data into the Map
matrix.put("A", new int[]{ 2, 3, 4, 5, 6, 7 });
matrix.put("B", new int[]{ 3, 5, 6, 7, 8, 5 });
matrix.put("C", new int[]{ 3, 5, 6, 7, 8, 7 });
Scanner keyboard = new Scanner(System.in);
String row = keyboard.next();
int col = keyboard.nextInt() - 1;
System.out.println(matrix.get(row)[col]);
希望有所帮助!
答案 2 :(得分:0)
嗯,你只需编写一个方法,将2个字符串输入更改为2个数字,然后用它们打印出你想要的数字。
ex:&#34; A1&#34;
如果第一个char =&#34; A&#34;,i = 0;
如果第二个字符=&#34; 1&#34;,j = 1;
希望这会有所帮助