我想爲編程任務創建一個標題化方法,它將大寫某些單詞並忽略其他單詞。它總是首字母大寫。爲此,我創建了一個方法來查找字符串的第一個單詞,並試圖在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