Методы цепочки строк (split, gsub) в Ruby - PullRequest
0 голосов
/ 31 октября 2010

Я хотел бы разбить и сделать подстановку в строке в одной цепочечной команде. Вот мой пример, включающий сообщение об ошибке:

>> filebase
=> "Ueki_-_Hello_World"
>> filebase.split("_-_").gsub("_"," ")
NoMethodError: private method `gsub' called for ["Ueki", "Hello_World"]:Array
    from (irb):16

Это работает, когда я сохраняю результат «split» во временную переменную. Мне действительно это нужно?

Ответы [ 2 ]

5 голосов
/ 31 октября 2010

String#split возвращает Array. Array s не имеют gsub метода.

Непонятно, чего вы пытаетесь достичь. Это то, что вы ищете?

filebase.split("_-_").map {|s| s.gsub("_"," ") }
0 голосов
/ 31 октября 2010

Вы можете использовать либо карту, либо собрать:

filebase.split("_-_").map {|s| s.gsub("_"," ") }
filebase.split("_-_").collect {|s| s.gsub("_"," ") }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...