в функции "isDi git" java .lang.ArrayIndexOutOfBoundsException: 5 - PullRequest
0 голосов
/ 19 июня 2020

Мне нужно написать шифровальщик. Первую букву необходимо преобразовать в ее код ASCII. Вторую букву нужно заменить последней буквой

Должно получиться из этого "65 119esi 111dl 111lw 108dvei 105n 97n 111ka" Это "Старая мудрая сова жила в дубе"

Но когда я проверяю, char a di git, у меня ошибка.

public static void encryptThis(String text) {
        String [] text_arr = text.split("\\s");

        for(int i = 0; i < text_arr.length;i++){
            String word = text_arr[i];

            int length = word.length();

            char [] char_word = new char [length];

            char_word = word.toCharArray();
            int k = 0;

            length = char_word.length;

            char [] numb = new char [length];

            for (int j = 0;j < length; j++){



     //In this place
               if (Character.isDigit(char_word[i])){
                   numb[k] = char_word[i];
                   char_word[i] = ' ';
                   k++;
                   System.out.println(numb[k]);
               }
            }
            int number = Integer.parseInt(numb.toString(),8);
            String edit_char_word = char_word.toString();
            String final_str = new StringBuffer(edit_char_word).reverse().toString().trim();
            final_str = number + final_str;
            text_arr[i] = final_str;

        }
        String fin_text = text_arr.toString();
        return fin_text;

    }

1 Ответ

0 голосов
/ 19 июня 2020

Я написал метод encryptThis с самого начала и старался оставаться максимально простым, чтобы получить читаемый код, вот полный рабочий пример. Поскольку вы не упомянули, что делать, если число является первой «буквой», для этого не требуется специальной обработки - «1» будет зашифрована до (ascii) 49 ...

Это это результат:

input:              A wise old owl lived in an oak
output encryptThis: 65 119esi 111dl 111lw 108dvei 105n 97n 111ka 
output expected:    65 119esi 111dl 111lw 108dvei 105n 97n 111ka
...