返回语句打印的值

时间:2011-02-04 23:57:58

标签: java

我想将所有信息作为for语句打印的输出返回。

例如:

public static int countNumbers(int x) {

    for (int i = 1; i <= x; i++) {
        System.out.println(i);
    }

    return SOMETHING; // This something should be the values for statements prints.
                      // For example, countNumbers(5) returns 12345.
}

所以当我在其他地方调用该方法时,我会得到输出。

所以:

int output = countNumbers(3);
//output = 123;

如何做到这一点?

3 个答案:

答案 0 :(得分:5)

使用StringBuilder累积结果。 更新:然后使用Integer.parseInt将其转换为int:

public static int countNumbers(int i) {
    StringBuilder buf = new StringBuilder();

    for (int i=1; i<=5; i++) {
      buf.append(i);
    }
    return Integer.parseInt(buf.toString());
}

请注意,这仅适用于相当小的i值(最多9个),否则会出现整数溢出。

答案 1 :(得分:1)

这个怎么样:

public static int countNumbers(int x) {

    int retVal = 0;

    for (int i = 1; i <= x; i++) {
        System.out.println(i);
        retVal += i * Math.pow(10, x - i); // Is it math? I'm a C++ programmer
    }

    return retVal;

}

答案 2 :(得分:1)

这个怎么样:

public static int countNumbers(int x) {
    int result = 0;
    for (int i = 1; i <= x; i++) {
        result *= 10;
        result += i;
    }
    return result;
}