/ / Chaînage de méthodes de chaîne (split, gsub) en ruby ​​- ruby, string

Chaînage de méthodes de chaîne (split, gsub) en ruby ​​- ruby, string

"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 № 1

String#split renvoie un Array. Arrays 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("_"," ") }