一种从字符串中提取字符的随机片段的方法?

时间:2014-08-10 19:11:08

标签: ruby

示例字符串是:

str = "WZMLYZDVBTAAJJ2T21CWIA"

要获得第一个或最后5个字符,我可以这样做:

str.first(5)
 #=> "WZMLY" 
str.last(5)
 #=> "1CWIA"  

奇怪地str.center(5)返回整个str(没有错误)?怎么了?

他们是random(5)方法会做str[4..9]这样的事情吗?我知道我显然可以做到以下几点:(总是假设我的str> 9个字符)

random = rand(5)
random_str_segment = str[random..(random+5)]

3 个答案:

答案 0 :(得分:1)

不,没有内置方法。

random = rand(str.length - 5)
random_str_segment = str[random..(random+5)]

哦,center方法返回以空格为中心的字符串:

"abc".center(10)
=> "   abc    "

答案 1 :(得分:1)

str.slice(rand(str.size - 5), 5)

另外,请阅读center的文档:

  

中心str宽度。如果width大于str的长度,则返回一个长度为width的新String,其中str为中心并用padstr填充; 否则,返回str

答案 2 :(得分:1)

我认为最简单的方法就是:

a = "WZMLYZDVBTAAJJ2T21CWIA"
a[rand(a.size-5), 5]