检查字符串中存在哪些字符(Ruby)
我试图创建一个函数来检测字符串中存在哪些字符。然后,该函数返回一个26个字符长的字符串。根据是否找到该字符,该字符串中字符的位置将有1或0。因此,如果找到a B和a Z,函数将返回 01000000000000000001 这就是我目前所拥有的检查字符串中存在哪些字符(Ruby),ruby,string,Ruby,String,我试图创建一个函数来检测字符串中存在哪些字符。然后,该函数返回一个26个字符长的字符串。根据是否找到该字符,该字符串中字符的位置将有1或0。因此,如果找到a B和a Z,函数将返回 01000000000000000001 这就是我目前所拥有的 def convert(str) alpha = ("a".."z").to_a.join alpha.each_char do |i| num = 0 (str.include? i) ? (alpha[
def convert(str)
alpha = ("a".."z").to_a.join
alpha.each_char do |i|
num = 0
(str.include? i) ? (alpha[num] = 1) : (alpha[num] = 0)
num =+ 1
end
print ans
end
convert("a 345 % b ^ xxz")
但是,我在第5行中不断遇到一个错误:
没有将Fixnum隐式转换为字符串(TypeError)
我不知道该怎么解决这个问题。有什么建议吗 不能将数字分配到字符串中。将该行上的
1
和0
替换为“1”
和“0”
另外,我想你的意思是
num+=1
,而不是num=+1
您可以通过使用和来防止错误:
天哪我是个白痴。一天的编码太多了。;)谢谢@你不是白痴。你是一个犯错误的人!哈哈,是的。谢谢你的帮助:)
def convert(str)
('a'..'z').map { |c| str.include?(c) ? 1 : 0 }.join
end
convert("a 345 % b ^ xxz")
#=> "11000000000000000000000101"