ruby - 创建一个 titleize 方法,不包括 "little words"。

标签 ruby

我正在制作一种方法来大写我的输入,除了 a、an 和...等任何单词。

def titleize(string_to_titleize)
    string_to_titleize.split(' ').map { |words| words.capitalize }.join(' ')
end

我知道有一些 gem 可以做到这一点。我无法掌握如何手动完成。我假设创建一个不大写的单词列表。然后,将他们排除在外。

最佳答案

arr = ['a', 'an', 'the']
str ="This is a salil gaikwad working as an engineer"
str.gsub(/\w+/) {|match| arr.include?(match) ? match : match.capitalize} 
#Gives o/p :- This Is a Salil Gaikwad Working As an Engineer

关于ruby - 创建一个 titleize 方法,不包括 "little words"。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13813874/

相关文章:

ruby - 将一行(数组)添加到空矩阵

ruby - 使用正弦函数训练神经网络

ruby - 我可以使用 Ruby 从自身内部引用 lambda 吗?

ruby-on-rails - Ruby FileUtils.mkpath 在不同环境下的行为不同

ruby - 使用在父模型中定义的作用域,在它的子模型中(STI 模式)

ruby - 是否有具有方法#to_str 的Ruby 内置类或模块(String 除外)?

Ruby CGI 重定向响应,无需等待脚本结束

ruby-on-rails - rails : ArgumentError in UsersController#create wrong number of arguments (2 for 1)

ruby - 我如何删除字符串周围的引号

ruby - 如何在 Haml 中包含 5 <BR>?