Ruby方式检查字符串是否为空白?

Raj*_*hra 35 ruby

在Ruby(而不是Rails)中的else if条件中检查变量是否为空的最佳方法是什么?

elsif not variable.to_s.empty?
  # do something
end
Run Code Online (Sandbox Code Playgroud)

要么

elsif !variable.to_s.empty?
  # do something
end
Run Code Online (Sandbox Code Playgroud)

要么

elsif variable.to_s.length > 0
  # do something
end
Run Code Online (Sandbox Code Playgroud)

Luk*_*iak 41

string = ""

unless string.to_s.strip.empty?
  # ...
end
Run Code Online (Sandbox Code Playgroud)

  • @goldylucks 如果您知道 vatriable 包含字符串。但变量可以是 nil,在这种情况下 strip 会产生错误。 (4认同)

thr*_*ree 5

你可以使用

unless var.empty?
  #do sth
end
Run Code Online (Sandbox Code Playgroud)

或者

unless var == ""
  #do sth
end
Run Code Online (Sandbox Code Playgroud)

或所有这些都带有if和一个否定词!

  • 这不是问题的一部分。要检查它,只需执行:`unless var && var.empty?`。 (3认同)
  • 如果 var 为零,两者都会失败。 (2认同)
  • 这就是`.to_s` 的用途(在原帖中) - 处理 nils。 (2认同)

Ram*_*nSM 5

我只是发现''.empty?返回true' '.empty?返回false。即使to_s.length对于' '不为零。

也许最好使用strip作为 ' '.strip.empty?