Dúvidas Strings

9 respostas
israelwm
1.
String s1 = "a", s2 = "b";
String s3;

//Qual a maneira certa?
s3 = s1 + s2; //eu sei que é feio fazer isso, mas naum sei como se faz aki no java

2.

Char c = 'a';
String str = "bal";

str = str + String.valueOf(c); // que tosco como se faz isso?

9 Respostas

Rafael_Steil

O que voce quer, mais exatamente? Voce pode concatenar uma String com um char sem problemas.

Rafael

israelwm

Tá mas essa é uma forma lenta e meio pedrera de fazer (pelo que li em algumas apostilas) mas elas só falavam isso, que é ruim pra fazer, mas naum diz como fazer, tem a String.concat, mas naum deu resultado nenhum:

String s1 = "a", s2 = "b"; s1.concat(s2);

Rafael_Nunes
s3 = s1.concat(s2);
Rafael_Steil

Vai dar tudo na mesma esses exemplos.

Concatenacao de Strings eh lenta se voce fizer isso com um numero absursdo de Strings. Por exemplo:

String s = "";
for (int i = 0; i < 100000; i++) {
    s += "blablebli";
}

isso sim vai ser lento. A solucao entao eh usar StringBuffer:

StringBuffer sb = new StringBuffer();
for (int i = 0; i < 100000; i++) {
    sb.apend("blablebli");
}

String s = sb.toString();

Mas em caso de concatenacoes pequenas, nao vai ter diferenca notavel de performance entre um e outro.

Rafael

israelwm

Blz então :slight_smile:

vou ficar com o modo feio mesmo ehehehhe.

mas é q li naum sei aonde que naum era ideal, sei lá.

valeu.

Rafael_Steil

Tudo depende do caso. Para concatenacoes simples, como s1 + s2 + s3 nao ha muita razao para criar o StringBuffer. Agora, se voce for fazer isso com algo grande, entao use o sb.

Rafael

renatosilva

Esse lance de StringBuffer é escroto na minha opinião. O compilador é que tinha que otimizar o código para coisas como s1 + s2 serem transformadas em s1.append(s2). Eu não tenho certeza se o compilador faz essa otimização, mas ae esse StringBuffer tinha que desaparecer. O que acham?

renatosilva

Israel, não ligue para essa coisa de “é feio fazer isso”. Pense por si mesmo. Claro que não é o caso agora, mas não faça as coisas só por modismo. É o que eu tento fazer pelo menos!

israelwm

Valeu renato, vou fazer isso memos hehe. mas naum era por moda naum, eu li que era feio no senntido de gambiarra, mas acho q isso era nas primeiras versões do SDK,

valeu mesmo a todos.

Criado 4 de abril de 2005
Ultima resposta 4 de abr. de 2005
Respostas 9
Participantes 4