[Java] [String] Conversion between IP address and integer

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();

    }


}

Insert picture description here

Guess you like

Origin blog.csdn.net/weixin_48180029/article/details/112132925