/*
给一个不多于5位的正整数,要求:
1. 求它是几位数。
2. 逆序打印出各位的数字。
*/
import java.io.*;
import java.util.*;
final class Demo
{
private Demo(){}
private static Demo instance = new Demo();
private ArrayList arrlist = new ArrayList(0);
private int count = 0;
private long n;
public static Demo getInstance()
{
return instance;
}
public int getBitCount(long n)
{
int count = 0;
while(n!=0)
{
n /= 10;
count++;
}
return count;
}
private char[] getReverseBits(long n)
{
String str = n + "";
//String str = Long.toString(n);
return str.toCharArray();
}
public void printReverseBits(long n)
{
char[] arr = getReverseBits(n);
for(int i = arr.length - 1; i >= 0; i--)
{
System.out.print(arr[i]+"\t");
}
System.out.println("");
}
}
class MainClass
{
public static void main(String[] args) throws Exception
{
Demo d = Demo.getInstance();
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
String reg = "\\d+";
System.out.println("输入一个1到99999的数字:");
for(String str = buf.readLine().trim();true; str = buf.readLine().trim())
{
if(str.isEmpty() == true)
continue;
if(str.equals("quit") == true)
System.exit(0);
if(str.matches(reg) == true)
{
long n = Long.parseLong(str);
if( n == 0)
System.out.println("0错误!");
else
{
System.out.println(n+"的位数是:"+d.getBitCount(n));
System.out.println(n+"的逆序排列是:");
d.printReverseBits(n);
}
}
else
{
System.out.println("输入的数字不合法!");
}
}
}
}
/*
1. 将一个整数和空串""相加会得到该数字的字符串表达式。计算该数字的位数更简单了就是该字符串的长度。- -!
还可以用Long.toString(long n)方法直接获得字符串表达式。
Integer.toString(int i)同理。
*/
java50题----24打印数字
最新推荐文章于 2022-10-12 17:31:44 发布