2013-11-18 3 views
1

Как распечатать тире «-» в той же длине, что и длина слова? Я использовал for-loop, но получил только 1 тире.для печати цикла - столько, сколько длина слова?

for(int i=0; i<secretWordLen; i++) theOutput = "-"; 

Главная:

public String processInput(String theInput) { 
    String theOutput = null; 

    String str1 = new String(words[currentJoke]); 
    int secretWordLen = str1.length(); 

    if (state == WAITING) { 
     theOutput = "Connection established.. Want to play a game? 1. (yes/no)"; 
     state = SENTKNOCKKNOCK; 
    } else if (state == SENTKNOCKKNOCK) { 
     if (theInput.equalsIgnoreCase("yes")) { 
      //theOutput = clues[currentJoke]; 
      //theOutput = words[currentJoke]; 
      for(int i=0; i<secretWordLen; i++) theOutput = "-"; 
      state = SENTCLUE; 
+0

возможный дубликат http://stackoverflow.com/questions/7107297/what-is-the-easiest-way-to-generate-a-string-of-n -repeated-characters – holap

ответ

3

StringBuilder Использование:

StringBuilder builder = new StringBuilder(); 
for(int i=0; i<secretWordLen; i++) { 
    builder.append('-'); 
} 
theOutput = builder.toString(); 

Это будет делать, если все, что вы хотите в theOutput есть ряд черточек. Если вы хотите иметь что-то раньше, просто используйте builder.append() перед добавлением тире.

Решение с += будет работать тоже (но нужно theOutput быть инициализирован к чему-то раньше, конечно, так что вы не присоединяют к null). За кулисами Java преобразует любую команду += в код, который использует StringBuilder. Использование этого напрямую делает его более понятным, что происходит, в этом случае более эффективно, и, как правило, хорошо узнать, как манипулировать String на Java.

+0

Спасибо, yup '+ =' решение добавит null, как вы упомянули, если не инициализировано. – Onizuka

0

вместо theOutput = "-"; использование theOutput += "-";

0

Вы должны добавить результат каждый раз.

for(int i=0; i<secretWordLen; i++) 
theOutput += "-"; 

Когда вы пишете theOutput += "-"; это сокращенная из

theOutput = theOutput +"-"; 
1

Вы переписываете свою переменную output на каждой итерации.

Изменить это:

theOutput += "-"; 
Смежные вопросы