我想为编程任务创建一个标题化方法,它将大写某些单词并忽略其他单词。它总是首字母大写。为此,我创建了一个方法来查找字符串的第一个单词,并试图在titleize方法中调用它。我得到一个错误,说“警告:条件字符串文字”。我试着改变周围的if循环的语句,但它并没有解决我的错误。任何人都可以解释为什么我的代码被破坏?非常感谢你的帮助!在Ruby中标题化的方法中调用方法
def first_word(str)
array = str.split(' ')
return array[0]
end
def titleize(str)
words = str.split
words.each do |word|
if word != first_word(str)
word.capitalize!
elsif word != 'and' or 'the'
word.capitalize!
end
words.join ' '
end
end
顺便说一句:你的代码是低效的。考虑一个很长的字符串与许多单词分裂它消耗时间和内存。在'words.each'循环的每个循环中,您都会调用'first_word()',它再次分割整个字符串。最好先做'first_word = words.first',然后在循环中使用'first_word'变量。 – tessi 2013-04-21 09:06:48
您的代码错误地将与初始单词相同的非初始单词大写。 – sawa 2013-04-21 09:39:55
@sawa你是对的! – 2013-04-21 09:45:17