2. 正整数的打印 【问题描述】 用Java 给出一个不多于5位的正整数,要求: 1.求出它是几位数。 2.分别打印出每一位数字。 3.按照逆序打印出每一位数字。 【输入形式】 控制台输入该正整数。 【输出形式】 控制台分行输出输出结果。 【样例1输入】 1234
时间: 2024-09-25 17:20:43 浏览: 62
【问题分析】
为了实现这个功能,我们可以编写一个Java程序,首先读取控制台输入的正整数,然后通过字符串处理和循环结构获取该数的位数,并逐个打印每一位数字以及逆序后的数字。以下是具体的步骤:
1. 使用`Scanner`类从控制台读取用户输入的正整数作为字符串。
2. 计算字符串长度得到整数的位数。
3. 遍历字符串,将每个字符转换为整数并按顺序打印。
4. 再次遍历字符串,但从后向前取字符并打印,实现逆序。
下面是一个简单的Java程序实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个不超过5位的正整数: ");
String input = scanner.nextLine();
// 检查输入是否合法
if (input.matches("\\d+")) {
int num = Integer.parseInt(input);
// 判断位数
int digitCount = String.valueOf(num).length();
if (digitCount <= 5) {
System.out.println("该数共有" + digitCount + "位:");
// 打印每一位数字
for (int i = 0; i < digitCount; i++) {
System.out.printf("%d", num % 10);
num /= 10;
if (i != digitCount - 1) {
System.out.print(", ");
}
}
System.out.println("\n逆序打印每位数字:");
// 逆序打印
for (int i = digitCount - 1; i >= 0; i--) {
System.out.print(num % 10);
num /= 10;
if (i != 0) {
System.out.print(", ");
}
}
} else {
System.out.println("输入的数字超过了5位限制!");
}
} else {
System.out.println("输入的不是正整数!");
}
scanner.close();
}
}
```
阅读全文