Credo, eu retornaria esses valores em um List<String>.
Mas se você é obrigado a retornar uma String (sabe como é que é, pode ser que você esteja criando algo para ser acessível via web services…) então você pode usar String.split. Exemplo:
Na verdade eu não sou obrigado a retornar uma String… É que como eu disse, eu sou grossão em Java ainda, estou reaprendendo tudo (aprender de pois de velho é trash mano, acredite…)!
Como assim usar uma List?
Eu nunca usei, você poderia me dar um exemplo ou alguma referência para que eu pudesse ler?
Valeu thingol e desculpa pela ignorância!
P
palmadias
Ao inves de retornar uma string com pipes, retorna uma lista.
List<String> list = new ArrayList<List>();
list.add(string1);
list.add(string2);
list.add(string3);
return list;
T
thingol
Vou dar um exemplo.
classTesteListaValores{publicList<String>listarJogadores(){List<String>jogadores=newArrayList<String>();jogadores.add("Ronaldo");jogadores.add("Keirrison");jogadores.add("Neymar");returnjogadores;}publicstaticvoidmain(String[]args){TesteListaValorestlv=newTesteListaValores();List<String>jogadores=tlv.listarJogadores();// Deve imprimir: "Ronaldo" "Keirrison" "Neymar"for(Stringjogador:jogadores){System.out.println(jogador);}}}
T
thingol
Acho que sou mais velho que você . O que é difícil é aprender as coisas estando enferrujado; por exemplo, se eu tivesse de pegar meus livros de álgebra de novo.
Hummmm… para código novo, evite usar StringTokenizer. Há dois grandes problemas com o StringTokenizer:
a) Ele não é tão flexível, rápido, conveniente e econômico de recursos quanto o String.split
b) StringTokenizer pode dar resultados inesperados, porque StringTokenizer não aceita campos vazios nem separadores com mais de um caracter.
Por exemplo, “abc||d|e|||f||”.split (Pattern.quote("|"), -1) retorna um array contendo “abc”, “”, “d”, “e”, “”, “”, “f”, “”, “”.
Mas se você for usar StringTokenizer, ele retorna algo semelhante a “abc”, “d”, “e”, “f”, não retornando nenhum dos campos vazios, o que normalmente é um comportamento indesejado.
paulofernandesjr
De fato, se o objetivo é pegar os caracteres mesmo vazios, beleza…
é melhor fazer da forma que você disse.
mas se você quer eliminar os espaços em branco e pegar somente os campos que tem valores, o StringTokenizer é melhor
abraço
T
thingol
“abc||d|e|||f||”.split ("[|]+")) retorna “abc”, “d”, “e”, “f”, igualzinho ao StringTokenizer.
Eu ainda prefiro String.split porque é mais fácil de debugar (basta ver o array que ele retornou). StringTokenizer exige você ficar andando sobre a string, e isso é desajeitado.
paulofernandesjr
OK OK
apreoveitando o tópico, o que tem a dizer sobre StringBuffer e StringBuilder
qual é melhor e compensa mais
abraço
T
thingol
Use StringBuffer em código Java 1.4 ou anterior, ou se estiver usando Java 5.0 ou posterior, se o StringBuffer for compartilhado entre várias threads (um evento reconhecidamente raro mas não improvável).
Use StringBuilder em código Java 5.0 ou posterior
paulofernandesjr
valeu pelas dicas
Baroni
Eu andei dando uma pesquisada e li bastante coisas…
No meu caso, como eu conheço exatamente o número de itens que serão retornados, não seria melhor usar um array?
Pelo que li, o List se aplicaria de forma mais efetiva a itens dinâmicos e de crescimento sem controle do programador, isso procede?
O que vocês acham?
P.S.:
thingol, faltou o item jogadores.add(“Uóshitu”); (odeio nome complicado… 8) )
T
thingol
Hum… eu sou extremamente preguiçoso e prefiro usar sempre List<String>, não String[]. De qualquer maneira, parece que o que você quer retornar é na verdade um objeto:
classEndereco{publicStringlogradouro;publicStringcomplemento;publicEndereco(StringL,StringC){logradouro=L;complemento=C;}}// Faça assim:publicEnderecogetEndereco(){returnnewEndereco("Av. Paulista","900");}// Não assim:publicString[]getEndereco(){returnnewString[]{"Av. Paulista","900"};}// Ou mesmo assim:publicList<String>getEndereco(){List<String>endereco=newArrayList<String>();endereco.add("Av. Paulista");endereco.add("900");returnendereco;}