0

如何输入像“23423”这样的数字并像“2 3 4 2 3”一样输出?以及如何使用户不能输入少于或多于 5 位的数字?(您的帮助将不胜感激。因为我正在学习 Java,所以我只需要你们的提示。期待学习新的东西。)

这是我到目前为止所拥有的:

    Scanner input = new Scanner(System.in);

    int value1, value2, value3, value4, value5;

    System.out.print("Enter a number: ");
    value1 = input.nextInt();

    System.out.print("Enter a number: ");
    value2 = input.nextInt();

    System.out.print("Enter a number: ");
    value3 = input.nextInt();

    System.out.print("Enter a number: ");
    value4 = input.nextInt();

    System.out.print("Enter a number: ");
    value5 = input.nextInt();

    System.out.printf(" %d " + " %d " + " %d " + " %d " + " %d\n ", value1, value2, value3, value4, value5);
4

3 回答 3

3

可以用循环重做:使循环读取输入 5 次,每次将第 i 个读取值放在数组的第 i 个位置。

然后,要打印它,您可以使用一个for循环来打印数组的每个元素。

于 2012-05-24T23:47:46.703 回答
2

如果您真的希望他们输入一个 5 位数字,您将不得不对用户输入进行验证,然后在输入无效时给出错误。如果要求您的 5 位数字的第一个数字永远不为零,您可以获取一个 int 然后检查它是否大于 9999 且小于 100000。否则将其作为字符串并检查长度,然后在验证后将其转换为整数。

于 2012-05-25T01:21:53.997 回答
0

在我看来,最合适的解决方案是一个 while 循环,您可以在其中构建一个字符串并添加一个空格。在 while 处理之后,您应该消除最后一个空格。类似以下内容应该适合您的需求。我使用了 apache commons 项目,但您也使用了自己的类。

    Scanner scanner = new Scanner(System.in);

    String str = "";
    while (scanner.hasNext()) {
        String next = scanner.next();
        if (next.equals("E")) {
            break;
        }

        if (NumberUtils.isNumber(next)) {
            for (int i = 0; i < next.length(); i++) {
                str += Integer.valueOf(next.substring(i, i + 1)) + " ";
            }
        }
    }
    str = str.substring(0, str.length() - 1);

    System.out.println("your number: " + str);  

使用“E”可以退出循环。

于 2012-05-25T06:35:35.513 回答