我想将一系列字符作为字符串传递给函数,让它返回给我,以下字符分割字符串:
@ # $ % ^ & *
如果字符串是
'hey#man^you*are#awesome'
程序返回
'嘿,伙计,你很棒'
我该怎么做?
答案 0 :(得分:3)
要分割字符串,您可以使用String#split
'hey#man^you*are#awesome'.split(/[@#$%^&*]/)
#=> ["hey", "man", "you", "are", "awesome"]
将它重新组合在一起,您可以使用Array#join
'hey#man^you*are#awesome'.split(/[@#$%^&*]/).join(' ')
#=> "hey man you are awesome"
split
和join
应该是不言自明的。有趣的部分是正则表达式/[@#$%^&*]/
,它匹配字符类[...]
中的任何字符。上面的代码基本上等同于
'hey#man^you*are#awesome'.gsub(/[@#$%^&*]/, ' ')
#=> "hey man you are awesome"
其中gsub
表示"全局替换@#$%^& *中任何出现的空格"。
答案 1 :(得分:0)
您也可以使用String#tr,这样就无需将数组转换回字符串:
'hey#man^you*are#awesome'.tr('@#$%^&*', ' ')
#=> "hey man you are awesome"