如何输入像'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);
答案 0 :(得分:3)
可以使用循环重做:使循环读取输入5次,并且每次将第i个读取值放在数组的第i个位置。
然后,要打印它,您只需使用打印数组中每个元素的for
循环。
答案 1 :(得分:2)
如果您真的希望他们输入一个5位数的数字,您将不得不对用户输入进行验证,如果输入无效则会出错。如果要求是5位数字的第一个数字永远不应为零,你可以得到一个int,然后检查它是否大于9999且小于100000.否则将它作为一个字符串并检查长度,一旦你验证了它就把它变成一个整数。
答案 2 :(得分: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”可以退出循环。