【Java】【字符串】IP地址与整数的相互转换

package itheima2;

import java.util.Scanner;

public class Main {
          
   
    public static void main(String[] args) {
          
   
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入字符串Ip地址:");
        String str = scanner.nextLine();
        System.out.println(ipToLong(str));
        System.out.print("请输入整数形式:");
        Long NumberIP = scanner.nextLong();
        System.out.println(longToIP(NumberIP));
        System.out.println(longToIP(NumberIP) + "的二进制形式:" + Long.toBinaryString(NumberIP));


    }
    public static long ipToLong(String str){
          
   
        String IP[] = str.split("\.");//注意:.在正则表达式有有特殊含义,使用转义字符
        Long number = (Long.parseLong(IP[0]) << 24) + (Long.parseLong(IP[1]) << 16) +
                (Long.parseLong(IP[2]) << 8) + (Long.parseLong(IP[3]));
        return number;
    }
    public static String longToIP(long IP){
          
   
        StringBuilder builder = new StringBuilder("");
        builder.append(String.valueOf(IP>>>24));
        builder.append(".");
        builder.append(String.valueOf((IP&0x00FFFFFF)>>>16));
        builder.append(".");
        builder.append(String.valueOf((IP&0x0000FFFF)>>>8));
        builder.append(".");
        builder.append(String.valueOf(IP&0x000000FF));
        return builder.toString();

    }


}
经验分享 程序员 微信小程序 职场和发展