我有一些奇怪的字符出现在字符串中,这些字符正在破坏脚本。从put badstring到console我可以看出它们是"\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

编辑:试图在IRB中重新创建,但遇到问题:
> test1 = "\0\0\0\0"
 => "\u0000\u0000\u0000\u0000"
> test2 = '\0\0\0\0'
 => "\\0\\0\\0\\0"

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

最佳答案

首先blank?是一个rails助手。请改为:

badstring =~ /\x00/

如果返回整数,则给定字符串包含"\0",如果返回nil,则给定字符串不包含"\0"

07-26 02:02