To String

7 respostas
V

Por que nome2 não muda para mudado, por que ele continua sendo nome2???

public class Tsttostring1 {

String nome = new String(nome);

String sobrenome = new String(Luis);

Soap s5 = new Soap();

Soap s6 = new Soap();

String nome2 = new String(nome2);

public String toString() {

if (nome == nome){

nome2 = new String(mudado);

}
return "nome " + nome + "\n" + "sobrenome " + sobrenome + "\n" + "s5: " + s5 + "\n" + "nome2: " + nome2 ;
 }

}

class Soap {

private String s;

Soap() {

System.out.println(Soap());

s = new String(Constructed);

}

public String toString() { return s; }

}
public class tste {

public static void main(String[] args) {

Tsttostring1 a = new Tsttostring1();

System.out.println(a);
}

}

Resultado

Soap()
Soap()
nome nome
sobrenome Luis
s5: Constructed
nome2: nome2

7 Respostas

aluisiodsv

Para comparações entre strings, vc deve usar o método equals.

Assim:

Ao invés de:

String str1 = "aluisio";
String str2 = "tested";

if (str1 == str2) {
  // faz alguma coisa
}

Deve ser assim:

String str1 = "aluisio";
String str2 = "tested";

if (str1.equals(str2)) {
  // faz alguma coisa
}
leoviniga
<blockquote><div class="quote-author">vctrlsda:</div>if (nome == “nome”){

nome2 = new String(“mudado”);

}

</blockquote>

troque por

if (nome.equals("nome")){ nome2 = new String("mudado"); }

leoviniga

opa nem vi que já tinha resposta acabei respondendo denovo ^^

banger

kra seu codigo esta confuso, tente coloca-lo entre as tags para codigo ([“code”] e ["/code"]).

tente trocar o seu teste de comparação por .equals, entre strings e o unico jeito que funciona corretamente.

ex

if(str1.equals(str2)) {
// executa algo
}
gRoOve

Por favor leia este tópico antes de postar.

Elizeu_Santos

minha duvida… pra que serve o toString? sempre que eu o vejo ele é reescrito.

outra duvida nada relativa a java… onde consigo essa tarja que o companheiro ai de cima colocou (A do ubuntu)

Master.Abs

Quando é feita uma comparação de Strings a maneira correta de se fazer é:

if(str1.equals(str2)){//}

Geralmente a comparação de == nas strings é para coparar endereco de memoria

Um exemplo melhor:

public class Teste_01 {
	public static void main(String[] args) {
        StringBuffer name = new StringBuffer("JSE");
        // Adicionando um nome a string
        name.append(", JEE");
        name.append(", JME");

        // Convertendo para string
        String nameStr1 = name.toString();

        // Aloca uma nova string contendo os valores do StringBuffer
        String nameStr2 = new String(name);
        if(nameStr1 == nameStr2){
        	System.out.println("Compara endereço de memória!");
        }else if(nameStr1.equals(nameStr2)){
        	System.out.println("Compara o conteúdo!");
        }
    }
}

Quando executar só será impresso o que contiver o mesmo conteúdo ou seja .equals
Vlw.

Criado 15 de fevereiro de 2011
Ultima resposta 16 de fev. de 2011
Respostas 7
Participantes 7