Java - 从循环返回多个值,作为单个字符串

时间:2014-03-17 15:44:15

标签: java string loops int return

我有一个方法,我传递两个int参数,并返回一个字符串。循环将确保如果第一个参数(更大的值)大于第二个参数,则第一个参数将递减,直到它等于第二个参数的值(较小的值)。
我遇到的问题是我每次循环运行后都会尝试返回递减值的值。我希望将这些值作为字符串返回,例如" 8,6,4,2"。我会如何设置它?

 public String countDown(int arg1, int arg2){
    if (arg1>arg2){
        for (int i = arg1; arg1>arg2;i--){
            //???

            return i;
        }

}

2 个答案:

答案 0 :(得分:1)

使用StringBuilder:

public String countDown(int arg1, int arg2){
    final StringBuilder stringBuilder = new StringBuilder();
    if (arg1>arg2){
        for (int i = arg1; arg1>arg2;i--){
            //???
            stringBuilder.append(/*whatever*/);
        }
    }
    return stringBuilder.toString();

}

答案 1 :(得分:0)

您需要将return置于循环之外。

你需要在循环之前声明一个对象,在最后一次返回它之前,存储你遇到它们时的值。

 String out = "";
 for(int i = arg1; i>arg2; i--) {
     out = out + i + ",";
 }
 return out;

这有几个问题:

  • 总有一个额外的","在返回的String
  • 的末尾
  • 虽然它可能是一个很好的解决你的家庭作业问题的方法,但从像这样的方法返回一个字符串通常不是最好的设计。例如,返回一个整数列表会更好,因为这是一个保留实际"意义的结构。在这种情况下,数据不仅仅是String。

您可以通过在此网站上搜索(无需提出其他问题)或在Java教科书中提前阅读来找到这两方面的帮助。