реорганизовать элемент массива в моем случае - PullRequest
1 голос
/ 18 ноября 2011

Предположим, у меня есть массив строк, подобный следующему:

str_arr=["10$", "10$ I am a student","10$Good","10$ Nice weekend!"]

Я хотел бы реорганизовать значение элемента массива так, чтобы в каждом элементе массива, если есть (есть) пробел (ы) после знака 10$, затем объедините 10$ со следующим словом .

Это генерирует новый массив, например:

str_arr=["10$", "10$I am a student","10$Good","10$Nice weekend!"]

Я пытался сделать следующее:

str_arra.map{|elem| 
     # not sure how to do here, 
     #split and check then combine again?
      if elem.size>1
         words=elem.split()
         if words[0]=='10$'
             #not sure how to do here
         end
      elsif elem.size==1
         elem
      end


 }

, но не уверен, как создать новый массив... и приведенный выше код кажется многословным ...

PS возможно, что есть несколько пробелов после 10$, затем следует слово

Ответы [ 2 ]

1 голос
/ 18 ноября 2011

Сделайте это:

str_arra.map{|elem| elem.gsub(/^\$ /, "$") }
1 голос
/ 18 ноября 2011

Если у вас есть только эти случаи, то нужно сделать следующее:

["$ abc", "$str"].map {|v, k| v.sub(/\$ +/, '$')}

Вот пример: http://codepad.org/XHeo7E8B

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...