Duda con código simple (creo) en Ruby.

Iniciado por Saito_25, 28 Marzo 2015, 19:31 PM

0 Miembros y 1 Visitante están viendo este tema.

Saito_25

Bueno, creo que tengo una duda de nobs, o al menos eso creo. Espero que me puedan contestar, por favor. Y gracias adelantadas  ;).

En fin, estoy haciendo un ejercicio que me pide que dada una frase por el usuario, y después dadas unas serie de palabras por el mismo, verifique si las segundas palabras se encuentran en las primeras y si es así, esas palabras se sustituyan por CONFIDENCIAL.

puts "Hola, expón el texto a investigar."
texto = gets.chomp
puts "Hola, expón las palabras a pulgar separadas con espacios."
modificar = gets.chomp

palabras = texto.split(" ")
modificadoras = texto.split(" ")

palabras.each do |palabra|
    if
        print palabra + " "
    else
        print "CONFIDENCIAL" + " "
    end
end


En fin, yo introduzco, por ejemplo este texto:
La luna roja, se tiño por el color de tus labios, el mar blanco perdió el color por el resplandor de tu piel, y el cálido se enfrío por tus lágrimas de miel.

Ahora, en el segundo gets.chomp añado las palabras: luna mar sol
Sin comas y separas por un espacio.

Como hago para que me verifique el código si las segundas palabras están en el texto y me las cambie por CONFIDENCIAL.

Usuario Invitado

Creo que la segunda serie de palabras no debes añadirla a la primera. Por ejemplo algo así:

Código (ruby) [Seleccionar]
var palabras = modificar.split(" ");
palabras.each do |palabra|
   if texto.include? palabra # si el texto contiene la palabra
       texto.gstub! palabra, "CONFIDENCIAL" # se reemplaza por CONFIDENCIAL
   end
end


Recorres las palabras a verificar y compruebas si el texto la contiene (texto.include? palabra). Si es verdadero reemplazas todas las apariciones de dicha palabra por CONFIDENCIAL (texto.gstub! palabra, "CONFIDENCIAL").

No manejo Ruby, pero inténtalo.


Saludos.
"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein

Saito_25