Urgente - para especialistas

12 respostas
C

Galera pq esse if sempre entra na parte de erro independente de eu digitar a senha e a confirmacao correta ou nao

if ( senha != confsenha ) {

System.out.println("Erro " + senha + confsenha);

validado = “nao”;

res.sendRedirect(“<a href="http://127.0.0.1:8080/cbras/jsp/caderro.jsp?msg=Confirmacao">http://127.0.0.1:8080/cbras/jsp/caderro.jsp?msg=Confirmacao</a> de Senha Invalida”);

} else { validado = “sim”; }

12 Respostas

C

e como faço pra saber se são diferentes?

cv1

Negue o if :wink:

C

como???

cv1

Hmm, tah na hora de ver o capitulo sobre if’s no seu livro de Java favorito :wink:

if(!"a".equals("b")) ...
C

perfeito galera valew pelo apoio

carioca

O caracter q significa negação em java é o !

boolean bo = false;

if(!bo){  //significa se !(nao) false, 
   //codigo
}
black_fire

“New__Radical”:
if ( senha != confsenha ) {
É pq vc está comparando se senha e confsenha estão apontando para o mesmo endereço de memória.

Faz assim:

senha.equals(confsenha)

Ae vc compara se elas possuem o mesmo conteúdo.

FLWzzzz

Só pra completar
String em java é um objeto, veja:

String s1 = "valor";
String s2 = "valor";

s1 não é igual a s2, pois são objetos diferentes.

outras linguagesns:

String s3;
s3 = trim(s1);

Java:

String s3;
s3 = s1.trim();

Em outras linguagens trim é uma função que tem como parâmetro uma string. Já em Java trim é um método do objeto String.

Um abraço… :wink:

cv1

“black_fire”:
Só pra completar
String em java é um objeto, veja:

String s1 = "valor";
String s2 = "valor";

s1 não é igual a s2, pois são objetos diferentes.

So pra ser bem chato… se vc fizer isso, um teste com == nessas Strings vai retornar true!

Pra ficar mais pratico:

public class Teste { public static void main(String[] args) { String s1 = "valor"; String s2 = "valor"; System.out.println(s1 == s2); System.out.println(s1.equals(s2)); } }

Vai imprimir true e true. Chocante, nao? :smiley:

Isto se deve a duas coisas: o pool de constantes que todo arquivo .class tem, e ao pool de Strings, que a classe String mantem internamente.

No primeiro (pool de constantes), todo valor literal (ou seja, todos aqueles que voce declarou direta e explicitamente no seu codigo) é colocado em um lugarzinho especial no arquivo .class. Como dá pra fazer Strings literais, assim como qualquer tipo primitivo, elas vao convenientemente parar no pool de constantes… :smiley:

Já o segundo, o pool de Strings, pode ser imaginado como um array de Strings estatico que reside dentro da classe java.lang.String, e é quase que totalmente invisível pro programador. É usado pros casos em que vc quer “fingir” que uma determinada String está no pool de constantes em algum lugar :slight_smile:

…mas calma, nao eh tao dificil assim… vou tentar explicar um pouco mais:

public class Teste { public static void main(String[] args) { String s1 = "valor"; String s2 = "valor"; String s3 = JOptionPane.showInputDialog("Digite 'valor':"); // "valor", tambem, mas veio de fora System.out.println(s1 == s2); // true System.out.println(s1.equals(s2)); // true System.out.println(s1 == s3); // false System.out.println(s1.equals(s3)); // true s3 = s3.intern(); System.out.println(s1 == s3); // AHA! true } }

Paulo_Silveira

resumao. algumas verdades:

System.out.println("x" == "x"); 
System.out.println(new String("x") != new String("x")); 
System.out.println(new String("x").intern() == new String("x").intern());
B
"carioca":
O caracter q significa negação em java é o !
boolean bo = false;

if(!bo){  //significa se !(nao) false, 
   //codigo
}
Pequena correção teórica (muito importante!): ! é um OPERADOR UNÁRIO em Java, e não apenas um caracter q significa negação, e apenas funciona se usado com tipo primitivo boolean, invertendo seu valor. Aconselho a todos darem uma lida na JLS pelo menos na parte de operadores. Valeu!
N
if &#40; senha != confsenha &#41; &#123;
É pq vc está comparando se senha e confsenha estão apontando para o mesmo endereço de memória. Faz assim:
senha.equals&#40;confsenha&#41;
Ae vc compara se elas possuem o mesmo conteúdo.

FLWzzzz

N

!

Criado 2 de novembro de 2003
Ultima resposta 2 de nov. de 2003
Respostas 12
Participantes 7