1. 程式人生 > >IP地址字符串與int整數之間的無損轉化

IP地址字符串與int整數之間的無損轉化

ip地址 pan 分享圖片 一個 技術分享 split pub clas length

今天鵝廠店面,最後問了一個ip地址字符串和整數間無損轉化的問題,晚上有時間了手擼了一下代碼。

public class IPstr {

    public static void main(String args[]){
        ipstrToint sti=new ipstrToint();
        int ip=0;
        ip=sti.strToint("127.11.22.33");
        if(ip==0)
            System.out.println("無效IP");
        else
            System.out.println(ip);
        intToipstr its
=new intToipstr(); String strip=its.intTostr(ip); System.out.println(strip); } } class ipstrToint{ public int strToint(String ip){ String strs[]=ip.split("\\.");//"."這種算是特殊符號需要"\"來轉義,"\"自己也要轉義,所以這裏才有了"\\." int ipnum=0; for(int i=0;i<strs.length;i++){
int curnum=Integer.parseInt(strs[i]); if(curnum>255||curnum<0) return 0; ipnum+=curnum; if(i<strs.length-1) ipnum=ipnum<<8; } return ipnum; } } class intToipstr{ public String intTostr(int
ip){ StringBuffer strip=new StringBuffer(); for(int i=0;i<4;i++){ String s=String.valueOf((ip&(255<<(3-i)*8))>>(3-i)*8); if(i!=3) strip.append(s+"."); else strip.append(s); } return strip.toString(); } }

技術分享圖片

IP地址字符串與int整數之間的無損轉化