📜  ruby 字符串到布尔值 - Ruby (1)

📅  最后修改于: 2023-12-03 15:34:45.920000             🧑  作者: Mango

Ruby 字符串到布尔值

在 Ruby 中,字符串(String)类型可以转换为布尔值(Boolean),通过一些简单的方法,可以将一个字符串转换为 true 或 false 值。

方法一:to_i

to_i 方法将字符串解析为整数(Integer),如果字符串可以被解析为非 0 值,则返回 true 值,否则返回 false 值。

puts "10".to_i.nonzero? #=> true
puts "0".to_i.nonzero? #=> nil
puts "".to_i.nonzero?  #=> nil
方法二:=~

=~ 是 Ruby 的正则表达式匹配符号,其返回值为匹配到的第一处的位置,如果没有找到匹配,则返回 false。

puts "test" =~ /t/      #=> 0
puts "test" =~ /x/      #=> nil
puts "" =~ /test/       #=> nil
puts "true" =~ /(true|false)/   #=> 0

可以结合 !!(即两个取反符号)来转换任意值为其对应的布尔值。

puts !!("10".to_i.nonzero?) #=> true
puts !!"test" =~ /t/        #=> true
方法三:casecmp

casecmp 方法可以比较两个字符串的大小写是否相同,忽略大小写的情况下,如果相同则返回 0,否则返回非 0 值。

puts "true".casecmp("True") #=> 0
puts "false".casecmp("True") #=> -1
puts "test".casecmp("Test") #=> 0

可以将其结合 zero? 方法来判定真假值。

puts "test".casecmp("Test").zero? #=> true
puts "false".casecmp("True").zero? #=> false

以上就是将 Ruby 字符串转换为布尔值的方法,赶快试试吧!