Нужна помощь Сдвиг массива 2D строк влево - PullRequest
0 голосов
/ 10 февраля 2019

До сих пор я дошел до отображения массива 26X26, который выглядит следующим образом: abcd ... abcd ... abcd ...

но мне нужно это сделать для этого:

abcd bcda cdab ...

Обычно каждая строка сдвигается на одну влево, но каждый раз, когда я что-то пробую, я получаю сообщение об ошибке.Любая помощь будет оценена.

вот мой код:

public static String [][] table(String [][] cipher){

    String [][] table = {{"abcdefghijklmnopqrstuvwxyz"}};

    for (int i =0; i < cipher.length; i++){

      cipher[i]  =  table[0];

      for(int j = 0; j< cipher[i].length; j++){

      cipher[j] = table[0];
  }
}
 return cipher;

}

1 Ответ

0 голосов
/ 10 февраля 2019

Не уверен, что вы пытаетесь достичь с помощью 2d массивов.Но вы можете использовать такой метод, чтобы сместить String внутри вашего массива влево.

class Main {
    public static void main(String[] args) {
        table(new String[26][26]);
    }

    public static String[][] table(String[][] cipher) {

        String[][] table = {{"abcdefghijklmnopqrstuvwxyz"}};
        for (int i = 0; i < cipher.length; i++) {
            String[] word = table[0];
            cipher[i] = leftShift(word, i);
        }
        return cipher;
    }

    public static String[] leftShift(String[] array, int number) {
        String word = array[0];
        number = number % word.length();
        return new String[]{word.substring(number) + word.substring(0, number)};
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...