2011-05-04 90 views

回答

7

我不認爲存在任何方法建造,但你可以自己寫一個簡單的一個:

CONSONANTS = [ 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z' ] 

def adverbize(word) 
    if word[-2,2] == "ly" 
    word 
    elsif word.length <= 3 and word[-1] == "y" 
    word + "ly" 
    elsif word[-2,2] == "ll" 
    word + "y" 
    elsif CONSONANTS.include? word[-3] and word[-2,2] == "le" 
    word.sub(/e$/, "y") 
    elsif word[-1] == "y" 
    word.chop + "ily" 
    else 
    word + "ly" 
    end 
end 

另一種方式來做到這一點,那將工作每一次(這主要是一個笑話,但你可以使用它,如果你想)

def adverbize(word) 
    "In a " + word + " fashion." 
end 
+0

我所期待的一個內置,大部分的規則將被照顧。語法不是我的專長;)。 – deb 2011-05-04 15:44:39

+1

'word [-1] =='y'? word.chop +'ily':word +'ly''這應該處理最常見的異常。還有其他的,比如「le」=>「ly」。 – 2011-05-04 21:01:11

+1

據此編輯,@LarsHaugseth。謝謝! – 2011-05-04 21:02:22