java50题----24打印数字

来源:互联网 发布:数据开发 数据挖掘 编辑:程序博客网 时间:2024/04/28 18:50
/*给一个不多于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)同理。*/

0 0
原创粉丝点击