【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?

IPアドレスをでtableタグでくくった表にしたくて悩んでいるのですが
下記のようなという変数に取り込んだ配列があり
pp @IP

["192.168.10.1"]
["192.168.11.1,2,3,4,5,6"]
["192.168.12.100,200,230"]




と第4オクテットが複数の数になる場合とならない場合があります。
これを表にあらわした時に
192.168.10.1
192.168.11.1
192.168.11.2
192.168.11.3


192.168.12.230
とこのような形で表にしたいです。
(実際にはテーブルでくくってあります。)

考えていたのは@IP.split('.')で
オクテット単位に区切ってみたのですが、
【"192","168","11","1,2,3,4,5"】←こんな感じ
最後の第4オクテットの表示がうまくいきません。
(第4オクテットをさらに配列にしようとして
うまくいってないですが・・・)

どうぞご助力頂けますでしょうか。

A 回答 (1件)

いかのようにして下さい。


@member =
[
"192.168.10.1",
"192.168.11.1,2,3,4,5,6",
"192.168.12.100,200,230",
]
ary = Array.new
@member.each do |mem|
ip1 = mem.split(".")
ip2 = ip1.pop.split(",")
ip2.each do |x|
ary << ip1.join(".") + "." + x
end
end
ary.each do |x|
print x,"\n"
end
---------------------------
動作確認済みです。
    • good
    • 0
この回答へのお礼

おー。出来ました^^
有難うございます。
今回の勉強になった点は

ip2 = ip1.pop.split(",")

ary << ip1.join(".") + "." + x
この2行が思い浮かびませんでした。
有難うございました^^

お礼日時:2009/09/10 12:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報