Как повторять каждую из отдельных букв в тексте? в Java

Вопрос: Как в заикании количество раз, указанное предоставленным множителем, если текст был "деканом" и множителем 3, результатом будет "dddeeeaaannn". public static void repeatLetters() { String text = "dean"; int n = 3; StringBuilder repeat = new StringBuilder(text); for (int i = 0; i < n; i++) { repeat.append("dean"); } System.out.println(text); } Не получить требуемый результат.

Вопрос:

Как в заикании количество раз, указанное предоставленным множителем, если текст был “деканом” и множителем 3, результатом будет “dddeeeaaannn”.

public static void repeatLetters() { String text = «dean»; int n = 3; StringBuilder repeat = new StringBuilder(text); for (int i = 0; i < n; i++) { repeat.append(«dean»); } System.out.println(text); }

Не получить требуемый результат. Что я делаю не так?

Лучший ответ:

Вы просто добавляете строку n раз для каждого символа в ней. Вам нужно выполнить итерацию по строке и добавить каждый символ n раз.

public static void repeatLetters() { String text = «dean»; int n = 3; StringBuilder repeat = new StringBuilder(); for (int i = 0; i < text.length(); i++) { for (int j = 0; j < n; j++) { repeat.append(text.charAt(i)); } } System.out.println(repeat); }

Кроме того, другим решением будет использование регулярных выражений.

public static void repeatLetters() { String text = «dean», replace = «»; int n = 3; for (int i = 0; i < n; i++) replace += «$1»; System.out.println(text.replaceAll(«(.)», replace)); } Ответ №1

Две проблемы:

  1. Вы не печатаете строку, которую вы манипулировали, вы печатаете оригинальную строку, с которой вы начали, т.е. «dean». Чтобы напечатать строку из StringBuilder, вы можете использовать

    System.out.println (повтор);

  2. Вы добавляете целое слово «dean» к своему оригинальному слову вместо добавления отдельных букв/символов. Вам нужно повторить каждую букву в исходном слове и добавить эти буквы в пустой StringBuilder. Вот основная логика, которую вы должны использовать, чтобы добиться успеха:

    • Получите оригинальное слово (“dean”)
    • Создать пустой StringBuilder
    • Проанализируйте каждую букву исходного слова (“dean”) либо с помощью цикла for, либо с помощью каждого символа в строке или с помощью String.split и разбора массива.
    • Для каждой буквы в вашем исходном слове добавьте это письмо с этой буквой n раз в свой StringBuilder.
    • Распечатайте строку из StringBuilder после того, как вы проанализировали все буквы исходного слова.

Ответ №2

Вы просто добавляете слово “декан” в конец строки три раза.

Попробуйте вместо этого прокрутить каждый символ в слове dean и добавить этот символ три раза.

Что-то вроде этого (это псевдокод):

StringBuilder repeat = new StringBuilder(); ForEach( letter in «dean» ) For( int i = 0 ; i < 3 ; i++ ) repeat.add(letter); Return repeat Ответ №3

Вы повторяете здесь все слова. Возможное исправление

public static void repeatLetters() { String text = «dean»; int n = 3; StringBuilder repeat = new StringBuilder(); for (int i = 0; i < text.length() ; i++) { for (int j= 0; j< n; j++) repeat.append(text.charAt(i)); } System.out.println(repeat); }

Оцените статью
Добавить комментарий