【问题标题】:How do I capitalize the first letter in an array of strings using method capitalize?如何使用大写方法将字符串数组中的第一个字母大写?
【发布时间】:2013-09-08 00:59:19
【问题描述】:

我创建了一个简单的程序来询问体育迷一些信息。这是我到目前为止的代码:

puts "What's your favorite pro sport?"
favorite_sport = gets.chomp

puts "Who's your favorite team in the #{favorite_sport}?"
favorite_team = gets.chomp

puts "What city are they from?"
team_city = gets.chomp

puts "Who's your favorite player in the #{favorite_team} roster?"
favorite_player = gets.chomp

puts "What position does #{favorite_player} play?"
player_position = gets.chomp

puts "How many years has #{favorite_player} played in the #{favorite_sport}"
years_experience = gets.chomp

fan_info = [favorite_sport, favorite_team, team_city, favorite_player, player_position, years_experience]
puts fan_info

我想让程序输出 fan_info,字符串的第一个字母大写。我该怎么做呢?我知道我必须使用 capitalize 方法,但我无法实现。

下面是输入输出的例子:

What's your favorite pro sport?
NFL
Who's your favorite team in the NFL?
Seahawks
What city are they from?
seattle
Who's your favorite player in the Seahawks roster?
wilson
What position does wilson play?
qb
How many years has wilson played in the NFL
1
NFL
Seahawks
seattle
wilson
qb
1

【问题讨论】:

  • 对于用户输入"NFL",你希望输出是"Nfl"还是"NFL"
  • 好收获!是的,我确实想把它留给 NFL。即使没有输入全部大写。

标签: ruby arrays methods capitalization


【解决方案1】:

试试这个:

puts fan_info.map(&:capitalize)

这会在每个字符串上调用#capitalize,构建一个包含所有结果的新数组,然后将其打印出来。

相当于这样:

fan_info_capitalized = []
fan_info.each do |inf|
  fan_info_capitalized << inf.capitalize
end
puts fan_info_capitalized

只是更紧凑。

【讨论】:

  • 这样使用的问题是,capitalize 会将字符串中的所有字符变为小写,然后将第一个字符变为大写,从而破坏专有名称和缩写的大小写。 'foo BAR'.capitalize # =&gt; "Foo bar"
  • 确实,发帖者应该看到并补救这些事情。
【解决方案2】:

如果您打算将第一个字母大写以保持其他字母不变(即,"NFL" 保持为 "NFL",而不是 "Nfl"),那么请执行以下操作:

favorite_sport = gets.chomp.sub(/./, &:upcase)
...

【讨论】:

  • 这会出现在每个gets.chomp上吗?
  • 是的。或者,您可以使用map 对数组中的字符串一次性完成所有操作。在这种情况下,将chomp 分开是没有意义的。它也应该放在map 块内。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 2017-06-25
  • 2011-12-11
  • 2016-09-02
  • 1970-01-01
  • 2015-07-24
相关资源
最近更新 更多