如何將「a」或「an」添加到隨機生成的字符串中?將「a」或「an」添加到隨機生成的字符串中
隨機生成器是post[rand(post.length)]
。
當帖子以元音或輔音開頭時,如何自動爲上述結果添加'a'或'an'?
如何將「a」或「an」添加到隨機生成的字符串中?將「a」或「an」添加到隨機生成的字符串中
隨機生成器是post[rand(post.length)]
。
當帖子以元音或輔音開頭時,如何自動爲上述結果添加'a'或'an'?
有趣。 在我看來,這裏的算法必須看看'a'或'an'後面單詞開頭的語音發音。只看輔音和元音是不夠的。例如,這裏有一些明顯的選擇和一些例外情況考慮:
一次性的東西
措施
重概念的單位
評價很高
蛋擊敗
一個歷史性的時刻
一個誠實的人
的事情
以眼還眼
我想答案的OP將resul所有者t回答:「是否有描述單詞語音發音的算法?」如果按照這個詞以元音開頭聲音,然後用「的」否則,使用「一」
我不知道這是否會幫助:http://creativyst.com/Doc/Articles/SoundEx1/SoundEx1.htm
我明白時後開始以元音或輔音爲:_IF它以字母開頭(無數字或特殊符號)。
這應該修改字符串:
(randomstring << 'a') if randomstring =~ /\A\w/i
還是有一點testexample:
%w{
ebbbbb
debbbbb
.debbbbb
}.each{|randomstring|
(randomstring << 'a') if randomstring =~ /\A\w/i
p randomstring
}
如果字符串包含您隨機生成的字符串,那麼new_string將包含輸出字符串字「一'或'an':
new_string = (string=~/^[aeiou]/i ? 'an ' : 'a ') + string
此方法沒有考慮到t他在輸入字符串的初始值的情況下,並嘗試適當地替換。這只是一個問題,如果你必須處理句子的開頭。
即使你確實需要處理句子的開始,我仍建議你保持簡單,並採取直接的方法檢查第一個字母是否是大寫字母,然後構建new_string在每種情況下都有所不同:對於小寫字母的值,像上面那樣做,但對於大寫字母的值,應該減小輸入字符串的第一個字母,並在三元條件中將A加起來。
最後,請注意我的示例代碼不安全:它假定字符串已經是一個字符串對象,而不是別的(如nil)。如何處理錯誤的輸入取決於你在做什麼,但是每次調用字符串時都要使用.to_s至少使它不會崩潰。
可用的字符串bcos的問題是,如果我使用上述命令,隨機發生器將一個新的字符串附加到'+字符串',這意味着輸出將是正則表達式結果+新隨機數 –
將無法正常工作。這種方法在語法上對於「一次性事物」和「度量單位」是不正確的,僅舉幾個例子。 –
我使用的命令是這樣的:def generate_identifier(古) 如果(古=〜/^[AEIOU] /) 返回 「一個」 別的 返回 「一」 端 –
檢查,看它是否開始與/ [aeiou]同時/並將「n」粘貼到默認的「a」前綴?你試過什麼了? –
笏我做的是隨機產生一個'後'和陣列,DIS正常工作。 –
另一部分是在帖子中添加「a」或「an」,如果發佈的帖子是隨機開始的,使用輔音或元音 –