數字顛倒


題目描述:

輸入一個整數,將這個整數以字符串的形式逆序輸出

程序不考慮負數的情況,若數字含有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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM