JavaFree.org | RubyOnBr.org

array p/ string

Acompanhar array p/ string 20 posts, 7 participantes

Avatar surucucuazul 6 posts

tendo o seguinte string
e = “verde.amarelo.vermelho.azul”
tenho que retornar o seguinte array

[“verde.amarelo.vermelho.azul”, “amarelo.vermelho.azul”, “vermelho.azul”, “azul”]

 
Avatar nofxx 1960 posts

uma ideia..

 
Avatar surucucuazul 6 posts

tem como fazer um oneliner?

 
Avatar Fernando Luizão 1863 posts

Usando técnicas de POG avançado:

 
Avatar Shairon Toledo 1428 posts

off: Luizão preciso falar com vc em pvt

 
Avatar Mereghost 1476 posts

Tem o partition também:

 
Avatar Fernando Luizão 1863 posts

Shairon, te adicionei no gtalk.

Mereghost, aqui não funfou, deu erro no partition, wrong number of arguments (1 for 0).

 
Avatar Mereghost 1476 posts

Curioso, Luizão.

Qual o ruby que tu tá usando? Aqui no trampo tô usando o ruby 1.8.7 (2008-08-11 patchlevel 72).

 
Avatarkxu Hashi 46 posts

aqui no meu não funcionou, mas estou no 1.8.6

 
Avatar Fernando Luizão 1863 posts

Deve ser a versão mesmo. Com o REE não funfa:

ruby 1.8.6 (2008-08-11 patchlevel 287) [i686-linux]
Ruby Enterprise Edition 20090610

Já com o 1.9.1 funcionou.

 
Avatar Gustavo 'Vatsu' Sales 44 posts

Luizão, coisa linda!

Dois cosméticos:

é só pq comparações são mais baratas que a criação de uma nova string(com a concatenção) e a realocação de um array(no pop).

Show de bola!

[]’s

 
Avatar nofxx 1960 posts

one line com ; é migué!!! hahah

=D

 
Avatar Gustavo 'Vatsu' Sales 44 posts

Hehehe…certeza. Vou colocar uns \n depois dos ;

:D

De qq forma, one line? alguém?

 
Avatar Fernando Luizão 1863 posts

Se tivesse um “map_with_index”… =D

 
Avatar nofxx 1960 posts

Nao seja por isso

Vale? huaheuae…

 
Avatar nofxx 1960 posts

Pow.. isso eh divertido, a gente devia usar mais a “Refactoring & DRY” (abandonada ela… )
Rola um desafio, sai uma solução massa =D

 
Avatar Gustavo 'Vatsu' Sales 44 posts

No ruby 1.9 há o Enumerator#with_index.

Do código fonte do ruby:

 * Also, most iteration methods without a block returns an enumerator.
 * For example, Array#map returns an enumerator if a block is not given.
 * The enumerator has the with_index method.
 * So ary.map.with_index works as follows.
 *
 *   p %w[foo bar baz].map.with_index {|w,i| "#{i}:#{w}" }
 *   #=> ["0:foo", "1:bar", "2:baz"]

[]’s

 
Avatar nofxx 1960 posts

Caraca, daora Gustavo… ñ sabia dessa.

 
Avatarkxu Hashi 46 posts

só tem ninja nesse forum hauhua

anotado

 
Avatar Fernando Luizão 1863 posts

Usando a idéia do enumerator, finalmente um oneliner de verdade =D