2016-03-10 4 views
13

Ruby(Railsではない)のelse if条件で変数が空白でないかどうかを調べる最良の方法は何ですか?文字列が空白でないかどうかを調べるRubyの方法?

elsif not variable.to_s.empty? 
    # do something 
end 

または

elsif !variable.to_s.empty? 
    # do something 
end 

または

elsif variable.to_s.length > 0 
    # do something 
end 
+2

としてスキッシュを使用することをお勧めします。あなたはどちらの方法が最善であるか尋ねていますか? –

+1

第2のものは最も慣用的だと思います。もしあなたがレールを使っていたら、 'if variable.present?'や 'if!variable.blank?'を実行することもできます。これは空の文字列とnilsの両方を扱います。 –

答えて

17
string = "" 

unless string.to_s.strip.empty? 
    # ... 
end 
2

あなたは

unless var.empty? 
    #do sth 
end 

または

のいずれかを使用することができます

またはこれらのすべてがifとネゲーター!である。

+1

varがnilの場合、両方とも失敗します。 –

+2

これは質問の一部ではありませんでした。これを確認するには、 'var && var.empty? 'を除きます。 – three

+1

これは '.to_s'が(元の投稿で)何のためにあるのですか? - nilsを扱うためです。 –

0

私はちょうど''.empty?戻りtrueしかし' '.empty?戻りfalseことが分かりました。 ' 'to_s.lengthでもゼロではありません。

多分これらの方法のそれぞれが動作するはず' '.squish.empty?

Alas squish is in rails and not in ruby. Probably one should do ' '.strip.empty? to get the result. 
関連する問題