题目描述:
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
思路1:使用Scanner的next()方法以字符串形式接收从键盘输入的数字;然后把字符串转为字节(字符数组也可以)数组;计算字节数组长度,把最后位置字节放到第一个位置,循环条件是为,length为字节数组长度(length-1)/2;然后把字节数组转为字符串进行输出(若是字符数组则无需转换,直接输出即可)。
代码1:转为字节数组
1 import java.util.Scanner; 2 3 public class Inverse1 { 4 5 /**输入一个整数,将这个整数以字符串的形式逆序输出 6 * @param args 7 */ 8 public static void main(String[] args) { 9 Scanner sc =new Scanner(System.in); 10 //System.out.println("请输入一个整数"); 11 String s=sc.next(); 12 inverse(s); 13 } 14 15 public static void inverse(String s){ 16 byte[] b=s.getBytes(); 17 int l=b.length; 18 for(int j=0;j<=(l-1)/2;j++){ 19 byte temp=b[j]; 20 b[j]=b[l-1-j]; 21 b[l-1-j]=temp; 22 } 23 String s1= new String(b); 24 System.out.println(s1); 25 } 26 27 }
代码2:转为字符数组
1 import java.util.Scanner; 2 3 public class Inverse4 { 4 public static void main(String[] args){ 5 Scanner sc = new Scanner(System.in); 6 String s = sc.next(); 7 char[] c = s.toCharArray(); 8 int l=c.length; 9 for(int j=0;j<=(l-1)/2;j++){ 10 char temp=c[j]; 11 c[j]=c[l-1-j]; 12 c[l-1-j]=temp; 13 } 14 System.out.print(c); 15 } 16 }
思路2:利用常规方法分别计算出每一位的数字,并把每一位数字存储到整形数组中,然后输出
1 package com.zbt.huawei; 2 3 import java.util.Scanner; 4 5 public class Inverse2 { 6 7 /** 8 * @param args 9 */ 10 public static void main(String[] args) { 11 Scanner sc = new Scanner(System.in); 12 // System.out.println("请输入一个整数"); 13 int n = sc.nextInt(); 14 inverse2(n); 15 } 16 17 public static void inverse2(int n) { 18 int i=0; 19 int k=0; 20 int[] s=new int[100]; 21 if(n==0){ 22 System.out.println(n); 23 } 24 while((n/10 !=0) || (n%10 !=0) ){//这里判断条件其实就是n!=0 25 k=n%10; 26 s[i]=k; 27 n=n/10; 28 i++; 29 } 30 31 for(int j=0;j<i;j++){ 32 System.out.print(s[j]); 33 } 34 } 35 }
思路3:利用java的StringBuffer存储输入数字(以字符串形式接收输入的数字),然互利用reverse()方法,直接输出
1 package com.zbt.huawei; 2 3 import java.util.Scanner; 4 5 public class Inverse3 { 6 7 /** 8 * @param args 9 */ 10 public static void main(String[] args) { 11 // TODO Auto-generated method stub 12 Scanner sc = new Scanner(System.in); 13 String s = sc.next(); 14 StringBuffer sb = new StringBuffer(s); 15 System.out.println(sb.reverse()); 16 17 } 18 19 }