string = 'one a day'
如何从字符串中删除少于2个字符的单词?
result = 'one day'
答案 0 :(得分:6)
将你的字符串分成单个单词,过滤掉短字符串,然后将字符串粘合在一起。
puts 'one a day'.split(' ').select{|w| w.length >= 2}.join(' ')
# => one day
答案 1 :(得分:1)
这将删除2个或1个字母的单词并清理空格。
str.gsub(/\b\w{1,2}\b/,"").gsub(/\s{2,}/," ").strip
一组值也一样。
str = ["Dave is a dork", "a John is a name", "Shawn is a or Lindsey", "Shawn or Dave"]
str.map! { |str| str.gsub(/\b\w{1,2}\b/,"").gsub(/\s{2,}/," ").strip}
答案 2 :(得分:0)
这是你如何做到的:
string = "on a boat"
result = string.split(' ').reject{|w| w.length < 2 }.join(' ') # => on boat
答案 3 :(得分:0)
"once a day".gsub(/\b\w\b/, "").gsub(/\s+/, "")
# => "once day"
答案 4 :(得分:0)
我独立地找到了与最佳答案相同的解决方案, 所以这是一个考虑标点符号的解决方案
string = 'one a day. One 1, 22 333 0. This days o! o'
p string.split(' ').reject{ |e| i = e.dup; i.gsub!(/\W/, ''); i.length == 1}.join(' ')
#==> "one day. One 22 333 This days"
答案 5 :(得分:0)