我试图循环一个数字并以另一种方法打印它

时间:2016-02-05 00:46:27

标签: string loops int

所以我的想法是从用户那里得到一个数字,这是数字的小数位数。然后我打印出他的许多小数位的每个可能的结果。

因此,如果用户输入“2”,则输出01 02 03 ... 99。我还必须将此数字存储为字符串。我很难将数字循环,它会在每次循环后重置。这是我的代码。

import java.util.Scanner;

public class Hw2 {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        diff here = new diff();
        String res;
        String d = "0";

        do {
            System.out.println("Enter 1 to enter length of number: ");
            System.out.println("q. quit: ");

            System.out.print("select:");
            res = in.next();
            in.nextLine();

            switch(res.charAt(0)) {
            case '1':
                // get n from user
                System.out.print("Enter the length of string: ");
                int n = in.nextInt();
                diff.printDecimal(n, d);
                break;
            case 'q': case 'Q':
                System.out.println("Bye!");
                break;
            default:
                System.out.println("Invalid");
                break;
            }
        } while (res.charAt(0) != 'q' && res.charAt(0) != 'Q');
    }
    }



class diff {

    // print string
    static void printDecimal (int n, String d) {
        String maxNum = "9";
        while( maxNum.length() < n ) {
            maxNum += 9;
        }
        while (d != maxNum) {
            System.out.println(inDecimal(n, d));
        }

    }

    // increase string value by 1
    static String inDecimal(int n, String d) {
        String d2 = "";
        int d3 = Integer.parseInt(d);
        d3++;
        d = Integer.toString(d3);
        //d = String.valueOf(d) + 1;
        while( d.length() < n ) {
            d2 = "0" + d;
            d = d2;
        }
        System.out.println(d);
        return d;
    }
}

感谢您的帮助! 也只是为了记录,我通常会去找一个这样的问题的导师,但他们还没有聘请这个学期的导师。

1 个答案:

答案 0 :(得分:0)

这样的东西?

int places = 2;

for (int i = 0; i < Math.pow(10, places); i++) {
    System.out.printf("%0" + places + "d\n", i);
}

字符串格式化为带有2个位置的零填充数字。

输出

00
01
02
03
04
05
06
07
08
09
10
...
99