题解 | #整数与IP地址间的转换#

整数与IP地址间的转换

https://www.nowcoder.com/practice/66ca0e28f90c42a196afd78cc9c496ea

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String nextLine = scanner.nextLine();
        String nextLine1 = scanner.nextLine();

        convertIp2Number(nextLine);
        convertNumber2Ip(nextLine1);
    }


    public static void convertIp2Number(String nextLine) {
        StringBuilder stringBuilder = new StringBuilder();

        String[] split = nextLine.split("\\.");
        for (String str : split) {
            String binaryString = Long.toBinaryString(Long.parseLong(str));

            StringBuilder sb = new StringBuilder(binaryString);
            for (int i = 0; i < 8 - binaryString.length(); i++) {
                sb.insert(0, "0");
            }
            stringBuilder.append(sb.toString());
        }

        System.out.println(Long.parseLong(stringBuilder.toString(), 2));
    }


    public static void convertNumber2Ip(String nextLine) {
        String binaryString = Long.toBinaryString(Long.parseLong(nextLine));

        StringBuilder sb = new StringBuilder(binaryString);
        for (int i = 0; i < 32 - binaryString.length(); i++) {
            sb.insert(0, "0");
        }

        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < 32; i = i + 8) {
            String substring = sb.substring(i, i + 8);
            int parseInt = Integer.parseInt(substring, 2);
            stringBuilder.append(parseInt).append(".");
        }

        stringBuilder.deleteCharAt(stringBuilder.length() - 1);
        System.out.println(stringBuilder);
    }
}

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务