"Je souhaite diviser et faire une substitution dans une chaîne dans une commande chaînée. Voici mon exemple, y compris le message d'erreur:
>> filebase
=> "Ueki_-_Hello_World"
>> filebase.split("_-_").gsub("_"," ")
NoMethodError: private method `gsub" called for ["Ueki", "Hello_World"]:Array
from (irb):16
Cela fonctionne lorsque je sauvegarde le résultat de "scission" dans une variable temporaire. Ai-je vraiment besoin de ça?
Réponses:
5 pour la réponse № 1String#split
renvoie un Array
. Array
s ne pas avoir un gsub
méthode.
Ce que vous essayez de faire n’est pas clair. C’est ce que vous recherchez?
filebase.split("_-_").map {|s| s.gsub("_"," ") }
0 pour la réponse № 2
Vous pouvez utiliser soit la carte ou collecter:
filebase.split("_-_").map {|s| s.gsub("_"," ") }
filebase.split("_-_").collect {|s| s.gsub("_"," ") }