11

例:

// using Integer.parseInt
int i = Integer.parseInt("123");

どのように同じことをしますか?

// using Integer.parseInt
int i = Integer.parseInt("123.45.55.34");
4

6 に答える 6

7

123.45.55.34 という形式の IPv4 アドレスは、実際にはアドレスの各バイトを表す 4 つの 3 桁の数字であることを認識する必要があります。文字列全体を一度に解析してもうまくいきません。

他の人は の使用について言及していますが、IP の文字列表現しかない場合、私の知る限り、 をInetAddress簡単にインスタンス化することはできません。InetAddress

できることは、次のようなものです。

public static int parseIp(String address) {
    int result = 0;

    // iterate over each octet
    for(String part : address.split(Pattern.quote("."))) {
        // shift the previously parsed bits over by 1 byte
        result = result << 8;
        // set the low order bits to the current octet
        result |= Integer.parseInt(part);
    }
    return result;
}
于 2012-08-21T15:20:33.063 に答える