我正在用 Ruby 编写一小段代码,应该对用户指定的单词进行编辑,而不管传递的单词是全部大写、小写还是两者的组合。我试图解决这个问题的方法是对用户传递的字符串使用 downcase!
方法。但是,它似乎无法正常工作。例如,如果传递并存储在变量“text”中的第一个字符串全部为大写,而传递并存储在变量“redact”中的第二个字符串全部为小写
,则程序将无法编辑单词,只会打印出 downcase.
下面是代码:
puts "Enter what you want to search through"
text = gets.chomp.downcase!
puts "Enter word to be redacted"
redact = gets.chomp.downcase!
words = text.split(" ")
words.each do |word|
if word == redact
print "REDACTED "
else
print word + " "
end
end
最佳答案
问题是您使用 downcase!
如果没有进行任何更改,它将返回 nil
。字符串本身已修改,但返回值为 nil
,您将其保存在 text
变量中。
关于Ruby downcase 方法没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26989664/