pig-latin の文字列を翻訳するメソッドを ruby で書こうとすると、ルールは次のようになります: ルール 1: 単語が母音で始まる場合、単語の最後に「ay」の音を追加します。
ルール 2: 単語が子音で始まる場合は、単語の末尾に移動し、単語の末尾に「ay」の音を追加し、単語が 2 つの子音で始まる場合は、両方を末尾に移動します。単語の「ay」を追加します
初心者として、私の問題は 2 番目のルールです。単語が 1 つの子音だけで始まる場合は機能しますが、複数の場合は機能させるのに苦労します。誰かコードを見て、どのようにコーディングできるか教えてもらえますかそれとは異なり、おそらく私の間違いは何か、おそらくコードのリファクタリングが必要です。ありがとう、これまでのところ、私はこのコードを思いつきました:
def translate (str)
str1="aeiou"
str2=(/\A[aeiou]/)
vowel = str1.scan(/\w/)
alpha =('a'..'z').to_a
con = (alpha - vowel).join
word = str.scan(/\w/)
if #first rule
str =~ str2
str + "ay"
elsif # second rule
str != str2
s = str.slice!(/^./)
str + s + "ay"
elsif
word[0.1]=~(/\A[con]/)
s = str.slice!(/^../)
str + s + "ay"
else
word[0..2]=~(/\A[con]/)
s = str.slice!(/^.../)
str + s + "ay"
end
end
translate("apple") should == "アップルエイ"
translate("cherry") should == "エリーチャイ"
translate("three") should == "eethray"