首页 > 试题广场 >

试把以下的零压缩的 IPv6 地址写成原来的形式:

[问答题]
  试把以下的零压缩的 IPv6 地址写成原来的形式:
(1)0::0
(2)0:AA::0
(3)0:1234::3
(4)123::1:2
    public static void shortToComplete(String ipShort) {
        String[] split = ipShort.split(":");
        List<String> list = new ArrayList<>(Arrays.asList(split));
        int length = split.length;
        int a = 8 - length;
        for (int i = 0; i < split.length; i++) {
            String s = split[i];
            if (s.isEmpty()) {
                for (int j = 0; j < a; j++) {
                    list.add(j + i, "0000");
                }
                break;
            }
        }
        for (int i = 0; i < list.size(); i++) {
            String s = list.get(i);
            if (s.length() < 4) {
                list.set(i, StringUtils.leftPad(s, 4, "0"));
            }
        }
        String IP = String.join(":", list);
        System.out.println(IP);
    }

发表于 2021-04-23 13:45:21 回复(1)
(1)0::0            0000:0000:0000:0000:0000:0000:0000:0000
(2)0:AA::0      0000:00AA:0000:0000:0000:0000:0000:0000 
(3)0:1234::3   0000:1234:0000:0000:0000:0000:0000:0003 
(4)123::1:2     0123:0000:0000:0000:0000:0000:0001:0002
发表于 2019-11-20 10:58:45 回复(0)