Ruby downcase 方法没有按预期工作

标签 ruby arrays string

我正在用 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 变量中。

请参阅有关 downcase 的文档和 downcase!了解差异。

关于Ruby downcase 方法没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26989664/

相关文章:

ruby - 无法在redhat上安装ruby版本

ruby-on-rails - Ruby on Rails - 我如何将页面顶部显示的帖子顺序更改为最新?

php - 我可以将数组绑定(bind)到 PDO 查询中的 IN() 条件吗?

java - 我可以使用在 Java 数组中调用的方法的参数吗

javascript - 创建一个非常长的字符串比这更有效

c++ - std::string,string val 和 string val 之间的区别 = ""

ruby - 组合来自两个单独数组的字符串元素

ruby - | 之间有什么区别?与||

c# - 将基本类型(日期、数字)转换为字符串并返回以保存到 C# 中的数据库

c++ - _wfreopen 适用于 c :/path/file. txt 但不适用于 c :\path\file. txt?