for loop print - 与单词长度一样多?

时间:2013-11-18 14:54:38

标签: java string

如何以与字长相同的长度打印短划线“ - ”? 我使用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;

4 个答案:

答案 0 :(得分: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的代码。直接使用它可以更清楚地了解正在发生的事情,在这种情况下效率更高,并且通常了解如何在Java中操作String。

答案 1 :(得分:1)

您将在每次迭代中覆盖输出变量。

将其更改为:

theOutput += "-";

答案 2 :(得分:0)

而不是theOutput = "-";使用theOutput += "-";

答案 3 :(得分:0)

每次都必须追加结果。

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

当你写theOutput += "-";时,这是

的简写
   theOutput = theOutput +"-";