2011-02-04 3 views
0

Мне нужно написать небольшую программу, которая берет строку, такую ​​как Hello World, и выводит HHHEEELLLOOO WWWOOORRRLLLDDD, но вместо того, чтобы просто приветствовать мир, она берет любую строку, используя функцию сканера, и производит тот же результат , Я новичок в java и не могу понять, как создать эту программу вообще.повторяющиеся символы в цикле

+9

Что у вас до сих пор? –

+0

Почему бы не перебрать каждый символ строки и не построить другую строку с дополнительным счетчиком каждого символа, а затем вернуть это? – twmulloy

+4

«Мне нужно написать ...»: это домашнее задание? – thkala

ответ

0

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

int charRepeats = 3; 
String input = "Whatever"; // Get from whichever source you want. 

for (int i = 0; i < input.length(); i++) { 
    char c = input.charAt(i); 

    for (int j = 0; j < charRepeats; j++) { 
     System.out.print(c); 
    } 
} 
2

Я бы сделал это так, с первого взгляда, но может быть более легкое решение, сохраняющее все конкатенации.

String produceString(String source, int numberPerLetter) { 
    String result = ""; 
    for (int i = 0; i < source.length(); i++) { 
     char c = source.charAt(i); 
     for (int j = 0; j < numberPerLetter; j++) { 
      result += c; 
     } 
    } 
    return result; 
} 
3

Ключом к обучению программированию является разбиение проблемы на более мелкие части.

  1. Написать программу, используя Scanner, эхо обратно на вход и выход.

  2. Измените эту программу так, чтобы вы пересекали вход и печатали каждый символ.

  3. Измените эту программу, чтобы печатать каждый символ дважды.

  4. Изменить эту программу для печати каждого символа n раз.

0
int No_of_Repeats = 2; 
Scanner sc = new Scanner(System.in); 
String user_input=sc.next(); 
for (int i = 0; i < user_input.length(); i++) { 
    char c = input.charAt(i); 

    for (int j = 0; j < No_of_Repeats; j++) { 
     result+=c; 
    } 
} 
return result; 
Смежные вопросы