首页 > 解决方案 > Ruby 中将“John Di Bello”转换为“John DI BELLO”的最短方法

问题描述

我试图在 Ruby 中找到最有效的方法来将字符串 "John Di Bello"转换为"John DI BELLO".

基本上我需要capitalize总是第一个单词的名字和upcase也可以由两个单词组成的姓氏。

在这一刻,我正在提升一切

authors = ['John Di Bello', 'Terry Payton']
authors.map { |a| a.upcase }
#=> ['JOHN DI BELLO', 'TERRY PAYTON']

我找不到一种简单的方法来大写每个数组项中的第一个单词。

标签: rubystring

解决方案


拆分它,大写大写,然后加入它。

['John Di Tri Bello', 'Terry Payton'].map do |s|
  s.
    split(/\s+/, 2).
    reduce { |n, s| [n.capitalize, s.upcase] }.
    join(' ')
end
#⇒ ["John DI TRI BELLO", "Terry PAYTON"]

推荐阅读