我在Ruby中有一個字符串,我在其中調用strip方法來刪除前導和尾隨空格。例如在調用方法之前Ruby檢查是否爲
s = "12345 "
s.strip
但是,如果字符串爲空,我會得到以下錯誤。
NoMethodError:未定義的方法`條」的零:NilClass
我使用Ruby 1.9有啥最簡單的檢查方式,如果該值是零調用條法過嗎?
更新:
我想這在數組中的元素,但得到了同樣的問題:
data[2][1][6].nil? ? data[2][1][6] : data[2][1][6].split(":")[1].strip
這已被問及幾十次:http://stackoverflow.com/questions/5429790/is-there-a-clean-way-to-avoid-calling-a-method-on- nil-in-a-nested-params-hash – tokland
注意原始海報:字符串不是空的,因爲你聲稱,這將是's =「」',它是零。它還不存在。如果它是空的,你可以檢查:'s.strip,除非s.empty?' – three
如果字符串是空的,你不會得到那個錯誤。 – sawa