Comparação de String

Olá,

Estou fazendo um programa e peço uma resposta em String ( S ou N ), como faço para comparar, pois tentei o código abaixo e não deu certo…

 if (var == "S") ... 

String var = “N”;
if (var.equals(“N”)) {
System.out.println(“Sim! var é igual à N”);
}

[quote=“tfguitar”]Olá,

Estou fazendo um programa e peço uma resposta em String ( S ou N ), como faço para comparar, pois tentei o código abaixo e não deu certo…

 if (var == "S") ... 

tente usar:

if(var.equals("S"))

vc deve estar se perguntando, qual a diferença entre o operador == e o método equals()…

Exemplo:

[code]public class Teste
{

public static void mais(String args[])
{
int a = 10;
int b = 10;

System.out.println("a == b é " +  (a == b));

Integer ia = new Integer(10);
Integer ib = new Integer(10);

System.out.println("ia == ib é " +  (ia == ib));   

}

}[/code]

a execução dessa classe gera a seguinte saída:

[quote]a == b é true
ia == ib é false
[/quote]

as variáveis a e b são do tipo int, ou seja são tipos primitivos e não possuem nenhum objeto associado a elas…

já as variáveis ia e ib são referências de objeto Integer

as variáveis de tipo primitivo a e b, possuem o valor 10… as referências de objeto ia e ib, são na realidade referências a dois objetos Integer diferentes que também possuem o valor 10…

portanto os valores de ia e ib não são 10, mas sim valores exclusivos que representam os dois objetos…o operador == testa a igualdade…

para testar valores referênciados use o método equals(), que testa o valor, igualdade ou semântica!!!

:wink:

Pesquise sobre o método charAt(), ele dá a localização exata do caracter na string em questão, por exemplo:


String nome;

nome = new String(“Eu mesmo”);

nome.charAt(1);

nesse caso você estará se referindo à letra u, lembrando que as strings começam em 0.