2011-05-31 33 views

回答

190

如果在your_text可變文本,你可以使用:

your_text[0..29] 
+13

或'your_text [0 ... 30]' – Sorrow 2011-05-31 08:15:58

162

使用String#slice,也別名爲[]

a = "hello there" 
a[1]     #=> "e" 
a[1,3]     #=> "ell" 
a[1..3]    #=> "ell" 
a[6..-1]    #=> "there" 
a[-3,2]    #=> "er" 
a[-4..-2]    #=> "her" 
a[12..-1]    #=> nil 
a[-2..-4]    #=> "" 
a[/[aeiou](.)\1/]  #=> "ell" 
a[/[aeiou](.)\1/, 0] #=> "ell" 
a[/[aeiou](.)\1/, 1] #=> "l" 
a[/[aeiou](.)\1/, 2] #=> nil 
a["lo"]    #=> "lo" 
a["bye"]    #=> nil 
+0

大感謝的人:)! – 2011-05-31 08:17:12

+0

超棒的答案! +1 – Automatico 2013-06-13 17:42:39

+24

明確地說,'-1'用於到達字符串的末尾,所以**'a [1 ..- 1]#=>「ello there」**。 – 2014-04-18 19:24:11

23

既然你標記它的Rails,您可以用截斷:

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-truncate

例子:

truncate(@text, :length => 17) 

摘錄是好的,太知道了,它可以讓你顯示的摘錄文字像這樣:

excerpt('This is an example', 'an', :radius => 5) 
# => ...s is an exam... 

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#method-i-excerpt

+6

Ruby不是Rails。 – 2014-11-12 03:07:10

+0

@JoóÁdám標籤由Andrew Marshall更改 – apneadiving 2014-11-14 12:03:01

+0

有沒有任何改變的理由?如果OP在Rails中工作並要求在Rails中提供解決方案,那麼問題應該使用Rails進行標記。然後你的回答會有道理。 – 2014-11-16 17:00:21

0

如果你想要一個字符串,那麼其他的答案是好的,但如果你正在尋找的是前幾個字母字符,你可以訪問它們作爲一個列表:

your_text.chars.take(30) 
相關問題