ip字符串,二進制轉十進制輸出


題目:

輸入:

第一行輸入字符串個數n,余下幾行輸入ip二進制字符串

輸出:

按*.*.*.*格式輸出十進制ip

 

代碼實現:

 1 package ip;
 2 
 3 import java.util.Scanner;
 4 
 5 public class iptest {
 6     
 7     public static void main(String[] args) {
 8         Scanner sc=new Scanner(System.in);
 9         int n=sc.nextInt();            //nextint以一個int為結尾,光標還在本行
10         sc.nextLine();                //要用nextLine獲取"Enter"鍵,跳轉到下一行
11                                     //int n=Integer.parseInt(sc.nextLine());  或者使用這一句代替上兩行
12         String[] ipString=new String[n];
13         for(int i=0;i<n;i++) {
14             ipString[i]=sc.nextLine();
15         }                                    
16         for(int i=0;i<n;i++) {
17             printIP(ipString[i]);
18         }
19     }
20     //將傳入的ip二進制字符串,轉成十進制,並輸出
21     public static void printIP(String s) {
22         int num[]=new int[4];
23         int ipArray[][]=new int[4][8];
24         int k=0;
25         
26         //將字符串中數字存入int數組
27         //字符c ——>int k 轉換方法: int k=Integer.parseInt(String.valueOf(c))
28         for(int i=0;i<4;i++)
29             for(int j=0;j<8;j++)
30                 ipArray[i][j]=Integer.parseInt(String.valueOf(s.charAt(k++)));
31         
32         //將每四個8個二進制數存入數組
33         for(int i=0;i<4;i++) {
34             num[i]=0;
35             for(int j=0;j<8;j++) {
36                 num[i]+=ipArray[i][j]*Math.pow(2,7-j);
37             }
38         }
39         //將每個二進制數轉換成對應的十進制數,並按照格式  *.*.*.*  輸出
40         int j=1;
41         for(int i=0;i<4;i++) {
42             System.out.printf("%d",num[i]);
43             if(j++<4)
44                 System.out.printf(".");
45             else
46                 System.out.println();
47         }    
48     }
49 }

 

注意點:

1.scanner用法:nextInt以一個 int類型數字結束,nextLine以enter字符結束  

2.char轉int : 先將char轉成string,再轉成int

3.java中乘方的用法  a的b次方:Math.pow(a,b) 

 


免責聲明!

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



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