如何以与字长相同的长度打印短划线“ - ”? 我使用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 :(得分:3)
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 +"-";