我在破坏脚本的字符串中出现了一些奇怪的字符。据我所知,通过 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
编辑:尝试在 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"
。
关于 "\0"null 的 Ruby 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16652955/