IP地址字符串與int整數之間的無損轉化
阿新 • • 發佈:2019-03-21
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(intip){ 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整數之間的無損轉化