2011-05-31 9 views

Respuesta

190

Si usted tiene su texto en your_text variable, puede utilizar:

your_text[0..29] 
+13

o 'your_text [0 ... 30]' – Sorrow

162

Uso String#slice, también alias, tal como [].

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

hombre grande gracias :)! –

+0

¡Respuesta increíble! +1 – Automatico

+24

Para ser claros, '-1' se usa para llegar al final de la cadena, por lo que **' a [1 ..- 1] # => "ello there" '**. –

23

Ya que marcarlo como tal Carriles, puede utilizar truncado:

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

Ejemplo:

truncate(@text, :length => 17) 

Extracto es bueno saber también, que le permite visualizar un extracto de a text Like like:

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 no es Rails. –

+0

@ La etiqueta JoóÁdám fue cambiada por Andrew Marshall – apneadiving

+0

¿Hubo alguna justificación para el cambio? Si el OP funciona en Rails y solicita una solución en Rails, entonces la pregunta debe etiquetarse con Rails. Y entonces tu respuesta tendría sentido. –

0

Si quieres una cadena, entonces las otras respuestas están muy bien, pero si lo que estás buscando es las primeras letras como caracteres que se puede acceder a ellas como una lista:

your_text.chars.take(30) 
Cuestiones relacionadas