題目:java
輸入:數組
第一行輸入字符串個數n,餘下幾行輸入ip二進制字符串spa
輸出:code
按*.*.*.*格式輸出十進制ipblog
代碼實現: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字符結束 string
2.char轉int : 先將char轉成string,再轉成intclass
3.java中乘方的用法 a的b次方:Math.pow(a,b) test