Tenho um array de String
Ex: String[] x = {"t","e","s","t","e"};
gostaria de juntar todas as posições e transformar em uma String normal que ficaria = “teste”
preciso que todas as posicoes do array se juntem e formem uma string apenas.
Tenho um array de String
Ex: String[] x = {"t","e","s","t","e"};
gostaria de juntar todas as posições e transformar em uma String normal que ficaria = “teste”
preciso que todas as posicoes do array se juntem e formem uma string apenas.
Pode ser um array de char ??
char[] x = {'t','e','s','t','e'};
String s = new String(x);
String[] x = {"t","e","s","t","e"};
String t = "";
for(int c=0; c<x.length; c++)
t +=x[c];
System.out.println(t);
Deve haver outros meios mais práticos, mas ta aí minha contribuição
valeu manolimars, deu certo…
[quote=manolimars]
Deve haver outros meios mais práticos, mas ta aí minha contribuição :D[/quote]
Assim e mais pratico ainda.
[code]
String[] x = {"t","e","s","t","e"};
String t = "";
t +=x[0];
t +=x[1];
t +=x[2];
t +=x[3];
t +=x[4];
System.out.println(t); [/code]
[code]
public class build {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String [] aux={"a", "b","s","i","n","t","0"};
String result= new String(" ");
for ( String x : aux){
result +=x;
}
System.out.println(result);
}
}[/code]
aqui vai mais uma ajudinha!!!..
se cada string no array tiver apenas um caractere, a primeira solução proposta me parece a melhor…
se as strings podem ter mais de um caractere, utilize StringBuilder para concatenar…
para pequenos exemplos pode não fazer diferença, mas é sempre importante adquirir bons hábitos…
Exemplo com StringBuilder:
[code]String strings[] = {“Isso”, " ", “é”, " ", “um”, " ", “teste”, “!!”};
StringBuilder sb = new StringBuilder();
for (String str : strings) {
sb.append(str);
}
String texto = sb.toString();
System.out.println(texto);
[/code]
Nunca concatene strings dentro de loops usando os operadores + ou +=. É extremamente lento.
[quote=ViniGodoy]Exemplo com StringBuilder:
[code]String strings[] = {“Isso”, " ", “é”, " ", “um”, " ", “teste”, “!!”};
StringBuilder sb = new StringBuilder();
for (String str : strings) {
sb.append(str);
}
String texto = sb.toString();
System.out.println(texto);
[/code]
Nunca concatene strings dentro de loops usando os operadores + ou +=. É extremamente lento.[/quote]
memoria hoje em dia é que nao falta…( estou brincando )…
o append que faz internamente? ( nao é um loop e adiciona no fim a cada iteração ) ?
[quote=Alkamavo]memoria hoje em dia é que nao falta…( estou brincando )…
o append que faz internamente? ( nao é um loop e adiciona no fim a cada iteração ) ?[/quote]
Não falei em memória, mas em processamento mesmo.
Acontece que as Strings são imutáveis.
Então
x = "Vinicius";
x += " Godoy";
Não faz com que “Godoy” seja adicionado à String x. O que ele faz na verdade é criar uma nova String com o texto “Vinícius Godoy” e então atribuir essa nova String à x. O conteúdo anterior de x é então descartado. Você então paga por esse custo de criação e descarte, e reserva de memória está entre os custos mais caros em processamento.
O StringBuilder faz um processo similar, mas sem a criação de novas Strings. Ele controla internamente um buffer de caracteres, que só se tornará uma String imutável ao final do processo. Mais do que isso, o código interno dessas classes foi projetado para ser extremamente rápido. O quão mais rápido, segundo diz o item 33 do capítulo 7 do livro Effective Java, cerca de 9 vezes mais rápido para um bloco de 800 caracteres.
Dá uma lida nesse artigo, que explica com mais exemplos esse assunto.
boas , li os links que me mandaste e realmente aprendi mais algo, enfim é um mundo que a cada dia se descobre mais informação e conhecimento…e tudo graças a pessoas como tu que nao têm preguiça de ensinar!!
Obrigado e Bem haja!!