題目描述:
輸入一個整數,將這個整數以字符串的形式逆序輸出
程序不考慮負數的情況,若數字含有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 }