Por ejemplo, tengo un poco de cadena aleatoria:¿Cómo dividir cadena en 2 partes después de cierta posición
str = "26723462345"
Y quiero dividirlo en 2 partes después de 6-o carbón. ¿Cómo hacer esto correctamente?
¡Gracias!
Por ejemplo, tengo un poco de cadena aleatoria:¿Cómo dividir cadena en 2 partes después de cierta posición
str = "26723462345"
Y quiero dividirlo en 2 partes después de 6-o carbón. ¿Cómo hacer esto correctamente?
¡Gracias!
Esto debe hacerlo
[str[0..5], str[6..-1]]
o
[str.slice(0..5), str.slice(6..-1)]
realmente debe echa un vistazo a http://corelib.rubyonrails.org/classes/String.html
part1, part2 = str.slice!(0...6), str
puts part1 # => 267234
puts part2 # => 62345
puts str # => 62345
Aquí hay una versión reutilizable para usted:
str = "26723462345"
n = str.length
boundary = 6
head = str.slice(0, boundary) # => "267234"
tail = str.slice(boundary, n) # => "62345"
También conserva la cadena original, que puede ser útil más adelante en el programa.
Puede usar '-1' en lugar de tener que obtener la longitud de la cadena. –
Como respuesta diversión, ¿qué tal:
str.split(/(^.{1,6})/)[1..-1]
Esto funciona porque dividida devuelve el grupo de captura coincide, además de las partes de la cadena antes y después de la expresión regular.
La mejor manera OMI es string.scan(/.{6}/)
irb(main)> str
=> "abcdefghijklmnopqrstuvwxyz"
irb(main)> str.scan(/.{13}/)
=> ["abcdefghijklm", "nopqrstuvwxyz"]
o str [0 ... 6] y se escribe en todas partes el valor de la clave "6" – tokland