電子書籍の厳選無料作品が豊富!

Rubyで、どうか書いたらよいですか?

文字列を最初(最左)の=で分割し、x,yにそれぞれを代入したいです。

例)"hoge=1&piyo=2"
x => "hoge"
y => "1&piyo=2"

また、hoge=のように=の右が無い場合、yに""を代入したいです。

A 回答 (2件)

splitは分割数の上限を指定することができます。



irb(main):010:0> "hoge=1&piyo=2".split('=', 2)
=> ["hoge", "1&piyo=2"]
irb(main):011:0> "hoge=".split('=', 2)
=> ["hoge", ""]
irb(main):012:0> x, y = "hoge=".split('=', 2)
=> ["hoge", ""]
irb(main):013:0> x
=> "hoge"
irb(main):014:0> y
=> ""
irb(main):015:0>
    • good
    • 0
この回答へのお礼

いつもお世話になります(^^;

一発ですね。rubyは便利ですね。

ありがとうございました。

お礼日時:2007/12/29 21:44

一旦バラして、つなぐのが楽でしょうかね。



x, *w = "hoge=1&piyo=".split(/=/)
y = w.join('=')

"hoge=" の時もOKです。
    • good
    • 0
この回答へのお礼

なるほどです。

多重代入の*って、こういうふうに使うんですね。

ありがとうございました。

お礼日時:2007/12/28 20:49

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