问题描述:
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
问题分析:
1.判断是否是五位数且输入为正整数
2.需要逆序输出
问题解决:
需要用到For 循环循环遍历。需要将输入的数存入数组,将数组的元素,逆序输出为字符。
注意:由于number为int类型,输入为其它类型将会报错,此实验在这不做判断。
使用if(number>99999||number<0)来确定输入的数字为正整数。且int类型下00001=1.因此不用判断数字前输入0是否正确。例如以下运行结果:
请输入一个不多于5位的正整数
000000004
这是一个1位数
4
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个不多于5位的正整数");
int number=sc.nextInt();
if(number>99999||number<0)
{
System.out.println("请输入正确的格式");
}
else
{ String str=""+number;//将输入的int型转化为String类型
char []num=str.toCharArray();//使用toCharArray方法将String类型转化为数组。
int long1=str.length();//获取数组长度得到数字为几位数
String num1="";//定义一个空字符串
for(int i=long1-1;i>=0;i--)
{
num1=num1+num[i];//使用空字符串将数组进行拼接为字符
}
System.out.println("这是一个"+long1+"位数");
System.out.println(num1);
}
}
}