无法删除我的 ip_adress 中的前导零

Say*_*eli 3 java arrays string ip parsing

该函数应该删除 IPv4 地址中的前导零。007.006.02.90例如,地址应转换为7.6.2.90. 问题似乎出在这一行:

public static String zero_cutter(String ip) {
    String ipnew;
    String []  spliti = ip.split(".");
    int[] myArray = new int[4];

    for (int i = 0; i < 4; i++) {
        myArray [i] = Integer.parseInt(spliti [i]);
    }

    for (int i = 0; i < 4; i++) {
        spliti [i]  = Integer.toString(myArray [i]);
    }
    ipnew = spliti [0] + "." + spliti [1] + "." + spliti [2] +    "." + spliti [3];

    return ipnew;
}
Run Code Online (Sandbox Code Playgroud)

Kar*_*cki 7

您必须转义.模式中的字符,因为点是匹配任何字符的特殊字符(根据java.util.regex.Patternjavadoc)。

预定义字符类

。任何字符(可能匹配也可能不匹配行终止符)

\\一种方法是在模式中使用:

String[] spliti = ip.split("\\.");\
Run Code Online (Sandbox Code Playgroud)

但是,您可以用类替换代码InetAddress

String ip = "007.006.002.090";
InetAddress addr = InetAddress.getByName(ip);
System.out.println(addr.getHostAddress()); // 7.6.2.90
Run Code Online (Sandbox Code Playgroud)