Estoy tratando de reorganizar una cadena que contiene un nombre completo para que el segundo nombre se muestre antes del primer nombre.

Me las arreglé para dividir la cadena usando el código a continuación, sin embargo, cuando construyo parece que regresa en formato de matriz ["segundo nombre", "nombre"] en lugar de una cadena "segundo nombre," nombre ".

¡Cualquier ayuda apreciada!

def name_shuffler(str)
   name_parts = str.split(" ")
   first_name, last_name = name_parts[1], name_parts[0]
end
0
Rome-oh 7 mar. 2018 a las 02:08

3 respuestas

La mejor respuesta

Podrías unir las dos partes:

def name_shuffler(str)
    name_parts = str.split(" ")
    [name_parts[1], name_parts[0]].join(" ")
end

name_shuffler "one two" # => "two one"

Aunque va a querer pensar en manejar entradas sin espacios, o más partes de nombre que dos.

1
Darshan Rivka Whittle 6 mar. 2018 a las 23:13

Una forma de expresión regular.

"John Smith".gsub(/(\w+) (\w+)/,'\2 \1') #=> "Smith John"

Una forma rotativa.

"John Smith".split(' ').rotate.join(' ') #=> "Smith John"
0
Sagar Pandya 7 mar. 2018 a las 00:19
def name_shuffler(str)
  str.split(" ").reverse.join(" ")
end

name_shuffler("John Doe") #=> "Doe John"
1
laurentzziu 7 mar. 2018 a las 20:05