初学者,循环

时间:2013-11-19 15:49:36

标签: java loops

我正在为我的计算机科学课制作一个GUI并遇到一些麻烦(11年级)

我在用户放入GUI的startValue和endValue之间进行循环

for (int i = startNum; i <= endNum; i++) {
    valuesOutputLabel.setText("" + i + "");
}

它将作为GUI jLabel上的endNum输出。如果我做System.out.println(i);它将作为例子输出:

1
2
3
4
5
6
7

如何将输出设为:

1 2 3 4 5 6 7 8

我为system.out.print提供了答案但是如何使用jLabel进行此操作?

4 个答案:

答案 0 :(得分:4)

StringBuilder sb = new StringBuilder();
String separator = "";
for (int i = startNum; i <= endNum; i++){
    sb.append(separator);
    sb.append(i);        
    separator = " ";        
}
valuesOutputLabel.setText(sb.toString());

使用StringBuilder比String连接更快,内存效率更高。使用String concatentation,在此过程中将创建以下所有字符串:

"1"
"1 "
"1 2"
"1 2 "
"1 2 3"
"1 2 3 "
"1 2 3 4"
"1 2 3 4 "
"1 2 3 4 5"
"1 2 3 4 5 "
"1 2 3 4 5 6"
"1 2 3 4 5 6 "
"1 2 3 4 5 6 7"

使用StringBuilder维护一个可变表示,您可以在结尾处转换为String。

编辑:替代我上面使用的'条件分隔符'方法:

StringBuilder sb = new StringBuilder();
for (int i = startNum; i <= endNum; i++){
    sb.append(i).append(' ');
}
if (sb.length() > 0) {
    sb.deleteCharAt(sb.length() - 1);
}
valuesOutputLabel.setText(sb.toString());

答案 1 :(得分:3)

您必须存储要在标签上设置的文本:

String text = "";
for (int i = startNum; i <= endNum; i++){
    text += i + " ";
}
valuesOutputLabel.setText(text);

或者

for (int i = startNum; i <= endNum; i++){
    valuesOutputLabel.setText( valuesOutputLabel.getText() + i + " " );
}

答案 2 :(得分:0)

您需要使用System.out.print(i+" ");

答案 3 :(得分:0)

一种简单的方法是在循环结束时将每个数字添加到字符串中,然后在结尾处打印结果字符串。

类似的东西:

 String numString = ""
 for (int i = startNum; i <= endNum; i++){
    numString += " " + String.valueOf(i);
 }
 valuesOutputLabel.setText(numString);