题目:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
分析:1.可以单单从数学数字上考虑,我们一个个拿掉数字的位数,把这些位数重构得到一个新的数字
2.我们把数组当成字符串->字符串数组,对数组进行倒序输入,这样有不用顾忌数学处理数组的麻烦
一.逐位摘掉数字,进行先拆分,后重构
1 public static void funciton(int num) { 2 int length = 0; 3 int newNum = 0; 4 while (num != 0) { 5 int numGe = num % 10; 6 num = num / 10;// 拿掉末尾剩下 的整数 7 newNum = newNum * 10 + numGe;// 逆转得到的新数字 8 length++;// 记录整数的长度 9 } 10 System.out.println(length); 11 System.out.println(newNum); 12 }
二.把数字转为字符串数组,对数组进行操作
public static void function01(int num) { int len = 0; //用Sting类的valueOf(int a);方法将int->sting类型 String str = String.valueOf(num); //sting->char[] char[] array = str.toCharArray(); System.out.println(Arrays.toString(array)); for (int i = 0; i < array.length; i++) { len++; // 倒序输出数组元素 System.out.print(array[array.length - i - 1]); } System.out.println(); System.out.println("长度为:" + len); }
个人倾向第二种方法