Как инициализировать позиции в измерении nxn с помощью ASCII? (java) - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь назначить буквы и цифры массиву с любым заданным размером nxn. Например, массив 4x4 будет p[0][0] p[0][1] p[0][2] p[0][3]

p[1][0] p[1][1] p[1][2] p[1][3]

p[2][0] p[2][1] p[2][2] p[2][3]

p[3][0] p[3][1] p[3][2] p[3][3]

Я хочу назначить каждой строке буква алфавита и каждый столбец число, так что p [0] [0] = A1, p [0] [1] = B1. Точно так же:

A1 B1 C1 D1 ... до n-го числа алфавита (n1)

A2 B2 ...

... и до n-го числа (An)

Пока что я могу только создать массив заданных измерений и назначить по одному несколько определенных c букв и значений:

public static String[] intPos(int dimension) {
      String [] [] p = new String [dimension] [dimension];
      for (int i = 0; i < dimension; i ++) {
        for (int j =0; j < dimension; j ++) {
          p [i] [j] = 0;
        }
      }
      String p [0][1] = "B1";
      String p [0][3] = "D1";
      String p [2][1] = "B3";
      System.out.println("[" + p [0][1] + "," + p[0][3] + "," + p[2][1] + "]");

}

Однако я не знаю, как двигаться дальше отсюда , Строки - это числа, а столбцы - это буквы. Например, каждый p [любое число] [3] начинается с D, я не мог записать это отношение. Спасибо за помощь!

Пока это последнее состояние, которого я достиг:

public static String[] initialisePositions(int dimension) {
      char [] alphabet = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};       
      int [] nums = new int [dimension];
      for (int i = 0; i < dimension; i ++) {
        nums [i] = i + 1;
      }
      int [] [] p = new int [dimension] [dimension];
        for (int i = 0; i < dimension; i ++){
          for (int j = 0; j <dimension; j ++){
            p [i][j] = ?
          }
        }
        return null;
    }
}

Но нужна помощь о том, как составить список букв в столбце и чисел в строках для р [я] [J].

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Вот очень простой способ сделать это. Это будет делать 'A-Za-z'. Вы должны изменить, чтобы обрабатывать больше случаев, чем это.

public static String[][] intPos(int dimension) {
    if (dimension <= 0) return null;
    String [][] data = new String[dimension][dimension];
    for (int row = 0; row < dimension; row++) {
        char letter = 'A';
        for (int col = 0; col < dimension; col++) {
            data[row][col] = String.format("%c%d", letter, row+1);
            letter += 1;
            if (letter == 'Z') letter = 'a';
        }
    }
    return data;
}
0 голосов
/ 05 февраля 2020

Запустите для L oop и объедините строковый массив, который хранит {A, B, C, D ..} с индексом строки {1,2,3 ..} и присваивает его значениям массива

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...