@testerpe

OutOfMemoryError: пытался решить задачу с Codewars, но такая ошибка?

Нужно зашифровать каждое слово в тексте по заданным правилам:
• Первая буква должна быть преобразована в ее код ASCII;
• Вторая буква должна быть заменена последней буквой.

Я написал такой код, но она выполняется с ошибкой OutOfMemoryError. Что не так и как исправить?
public static String encryptThis(String text) {
        String[] words = text.split(" ");
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < words.length; i++) {
            char[] letters = words[i].toCharArray();
            StringBuilder transformedWord = new StringBuilder();
            char secondLetter = letters[1];
            char lastLetter = letters[letters.length - 1];
            transformedWord
                    .append((byte) letters[0])
                    .append(lastLetter);
            int k = 2;
            while (k < letters.length - 1) {
                transformedWord.append(letters[k]);
            }
            transformedWord.append(secondLetter);
            builder.append(transformedWord.toString());
        }
        builder.deleteCharAt(builder.length() - 1);
        return builder.toString();
    }
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Sergey_USB
Возьми просто первый символ s.charAt(0) и замени на ASCII
Возьми последний s.charAt(длина-1)
Возьми все остальное s.charAt(1) и сложи из этого новое слово.
Я бы так сделал - все в одно действие
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы