2011-10-25 22 views
1

にどのように「A」を追加するのですか「」を追加しますか?は「A」またはランダムに生成された文字列に「」ランダムに生成された文字列

乱数生成器はpost[rand(post.length)]です。ポストは、母音や子音のいずれかで開始しているとき、私は自動的に「」上記の結果に「A」を追加したりするにはどうすればよい

+3

チェック/ "n"をデフォルトの "a"接頭辞に付け替えますか?これまでに何を試しましたか? –

+0

wat私はランダムに '投稿'を配列から生成していましたが、うまく動作します。 –

+0

もう一つの部分は、ポスト遺伝子が無作為に子音や母音で始まった場合には、「a」または「an」を追加します。 –

答えて

2

興味深い。 ここでのアルゴリズムは、 'a'または 'an'に続く単語の頭の発音の発音を調べなければならないようです。子音や母音を見るだけでは不十分です。例えば、ここではいくつかの明白な選択肢と考慮すべきいくつかの例外がある:

1時間の事
対策
の単位重い概念
高い意見

に歴史的瞬間をビートに卵が
正直な人

私はOPの答えがresulうとし、目のためのもの
目の所有者「単語の表音的発音を記述するアルゴリズムはありますか?」フォローする単語が母音で始まる場合、「」それ以外の場合は、使用「」

を使用し、これは役立つだろうかしら:それは/ [AEIOU]で始まるかどうかを確認するためにhttp://creativyst.com/Doc/Articles/SoundEx1/SoundEx1.htm

0

私はが母音または子音で始まるときはと書いてあります。_文字が始まっていれば(数字または特殊記号で始まる)。

これはあなたの文字列を変更する必要があります。

(randomstring << 'a') if randomstring =~ /\A\w/i 

それとも少しtestexampleと

%w{ 
    ebbbbb 
    debbbbb 
    .debbbbb 
}.each{|randomstring| 
    (randomstring << 'a') if randomstring =~ /\A\w/i 
    p randomstring 
} 
0

文字列は、あなたのランダムに生成された文字列が含まれている場合は、その単語「と出力文字列が含まれていますnew_string 'または' an 'の前に:

new_string = (string=~/^[aeiou]/i ? 'an ' : 'a ') + string 

この方法では、入力文字列の初期値の場合、適切に置換しようとします。これは、文の始まりに対処する必要がある場合にのみ問題になります。

文章の最初の部分に対処する必要がある場合でも、簡単にして最初の文字が首都かどうかを確認する簡単な方法をとってから、 new_stringはそれぞれの場合で少しずつ異なります。小文字の場合は上記のようにしますが、大文字の場合は入力文字列の最初の文字をダウンケースし、Aを3値の条件付きでアップカウントします。

最後に、私のコード例は安全ではないことに注意してください。文字列はすでに文字列オブジェクトであり、他のものではないとみなします(nilなど)。悪い入力をどのように処理するかは、あなたがやっていることに依存しますが、文字列を呼び出すたびに.to_sが少なくともクラッシュすることはありません。

+0

で利用可能な文字列のbcosは、上記のコマンドを使用すると、ランダムジェネレータは '+文字列'に新しい文字列を添付します。正規表現の結果+新しい乱数 –

+0

は動作しません。このアプローチは文法的に「1回限り」と「測定単位」について不正確ですが、いくつかの例を挙げておきます。 –

+0

私が使ったコマンドはこれでした:def generate_identifier(古代) if(古代〜〜/^[aeiou] /) return "an" else return "a" end –

関連する問題