IPv6アドレスの短縮 どう書く?org

Groovy

IPv6アドレスの短縮 どう書く?org

の問題をといてみたが難しいので他の方の解答を見てみた。

どう書く?org 8349 horiuchi: Javaには、IPv6のアドレスも標準で…(IPv6アドレスの短縮) – 投稿の詳細

を見ると・・・あらら、こんなに簡単にかけるんだね。

ほんとJavaの標準ライブラリ知っているのと知らないのでは生産性ぜんぜん違うね。職場でも必死に半角英数字ふくむ、ふくまないをループで一文字ずつ処理している後輩を見ると悲しくなる。

Groovyで実装した解答を載せます。ああ、実質3行だw

def compressIpv6(address){
    return java.net.InetAddress.getByName(address).hostAddress.replaceFirst("(^|:)(0:){2,}", "::")
}
println compressIpv6("1230:5670:0000:0000:0123:0000:0000:00ab")
println compressIpv6("0000:0000:0000:0000:0000:0000:0000:0001")

Groovy