簡體   English   中英

返回供語句打印的值

[英]Returning the value that for statement prints

我想返回所有信息作為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;

如何才能做到這一點?

使用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),否則您將得到整數溢出。

這個怎么樣:

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;

}

這個怎么樣:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM