作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试创建一种方法,它将字符串句子作为参数,并将该句子翻译成 pig Latin。我目前正在尝试用一种方法来完成这一切。
我可以轻松地为一个词做到这一点:
def pig_latin_word(word)
vowels = %w(a e i o u)
word_array = word.split('')
if vowels.include?(word_array[0])
word_array.join('')
else
until vowels.include?(word_array[0])
word_array += word_array.shift(1)
end
word = word_array.join('')
"#{word}ay"
end
end
我现在想做同样的事情,但是让方法接受一个句子。这是我目前所拥有的:
def pig_latin_sentence(sentence)
vowels = %w(a e i o u)
sentence_array = sentence.split.each_slice(1).map{|a| a.join('')}
sentence_array.each do |word|
if vowels.include?(word[0])
sentence_array.join(' ')
else
until vowels.include?(word[0])
word_array = word.split('')
word_array += word_array.shift(1)
end
p sentence_array.join('ay ')
end
end
end
我最初是想把句子切下来,这样我就把每个词都分开了。然后我可以遍历一个数组,每个单词都是一个元素。但是,为了执行 .shift
方法,我必须再次拆分每个字符串元素。我怎样才能做到这一点?
另外,有没有人有更简洁的写单字方法的方法?
最佳答案
正如 Dave Newton 所说,让你的 pig_latin_word 处理这些词。如果这些词有问题,你会知道去哪里找;句子也是如此。
sentence.split.each_slice(1).map{|a| a.join('')}
是工作太辛苦的人的代码。
def pig_latin_sentence(sentence)
pig_words = sentence.split.map do |word|
pig_latin_word(word)
end
pig_words.join(" ")
end
关于arrays - pig 拉丁文句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741614/
这是我最后的选择,因为我已经尝试了在 Google 和 Stack Overflow 上可以找到的所有内容。 在问这个问题之前,我已经彻底搜索了答案。我发现人们从 MySQL 收到了相同的错误消息,但
在 Windows Phone 上,我想将任何给定的字符串子字符串化为等同于 100 个 ASCII 字符的长度。 String.Length 显然没有用,因为中文字符串每个字符使用 3 个字节,丹麦
我有一个 mysql 表,里面全是拉丁编码的文本。我知道这一点,因为即使我将表定义为 UTF-8 编码,并且发送的 header 设置为 UTF-8,我还是收到了黑色菱形中丑陋的问号。使我的数据正确显
我是一名优秀的程序员,十分优秀!