java如何更改行" name"用字母代替数字

时间:2018-01-17 00:34:53

标签: java

我有一个名为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

因此,我不会输入rowcol的2和3,而是输入B3。 我该如何改变?

3 个答案:

答案 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;

希望这会有所帮助