Ruby测试“ \ 0”是否为空?

Mel*_*emi 5 ruby string null

我有一些奇怪的字符显示在破坏脚本的字符串中。从我告诉put badstring控制台的情况来看"\0\0\0\0"。

我想对此进行测试,以便我可以忽略它们...但是如何?

以为这就是blank?和empty?人呢?!?:

> badstring = "\0"
 => "\u0000" 
> badstring.blank?
NoMethodError: undefined method `blank?' for "\u0000":String
    from (irb):97
    from /Users/meltemi/.rvm/rubies/ruby-2.0.0-p195/bin/irb:16:in `<main>'
> badstring.empty?
 => false
> badstring.nil?
 => false 
Run Code Online (Sandbox Code Playgroud)

编辑:尝试在irb中重新创建此文件,但遇到麻烦:

> test1 = "\0\0\0\0"
 => "\u0000\u0000\u0000\u0000" 
> test2 = '\0\0\0\0'
 => "\\0\\0\\0\\0"
Run Code Online (Sandbox Code Playgroud)

我想要的是一个"\0\0\0\0"字符串,这样我就可以找到一种测试方法if mystring == "\0\0\0\0"或类似的方法。

Pat*_*ity 4

你可以删除"\0"字符

badstring.delete!("\0")
Run Code Online (Sandbox Code Playgroud)

完整示例

badstring = "\0"
badstring.delete!("\0")
badstring.empty?
#=> true
Run Code Online (Sandbox Code Playgroud)

如果您想保留原始字符串,请使用delete代替。delete!