Comparação de String

Estou fazendo a seguinte comparação:

String[] Valores recebe vários valores como parâmetro.

a posição Valores[0] contém a string “V”;

if (!Valores[0].toString().equals(“V”)){

Gostaria de seber porque ele entende como true essa comparação…


}

Obrigado.

Porque Valores[0] não contém exatamente “V” mas sim alguma outra coisa (por exemplo, “v”).

aqui eu fiz esse mesmo codigo seu e caiu no else, ou seja, está correto. Confira se o valor da posicao indicada é esse mesmo :wink:

então mas é exatamente “V” que estou recebendo…

uma dica de programador calejado… rsrsrs

quando comparar string com .equals prefira o objeto a ser comparado…

isso evita nullPointer e fica um código mais metido… hehehe

String[] Valores  = {"V", "F"};

if (! "V".equals(Valores[0].toString())){
 System.out.println("não é V");
}else{
 System.out.println("é V");
}

nao evita NullPointer nao…

tente fazer isso e verá a exception:

[code]String[] Valores = {null,""};

if (! “V”.equals(Valores[0].toString())){
System.out.println(“não é V”);
}else{
System.out.println(“é V”);
}[/code]

Obrigado era isso mesmo que precisava

[quote=andrerios]nao evita NullPointer nao…

tente fazer isso e verá a exception:

[code]String[] Valores = {null,""};

if (! “V”.equals(Valores[0].toString())){
System.out.println(“não é V”);
}else{
System.out.println(“é V”);
}[/code][/quote]

Opa tem razão …

da por causa to tosco .toString

assim naão dá


if (! "V".equals(Valores[0])){
			System.out.println("não é V");
		}else{
			System.out.println("é V");
		}

mas será q isso nao “encobriria” erros q podem dar uma dor d cabeça depois debugando?

erros do tipo q esconde parametros null q nao deveriam ser null… creio q o melhor ai seria o uso de um try/catch mesmo :wink:

boa try catch é sempre uma mão na roda mas fica feio dependendo em que camada está esse código, subir throws em toda as chamadas…

mas como dificilmente esse null vai aparecer num arraylist…

o if mágico é bem melhor…

if(Valores[0] == null)	Valores[0] = "";

faria até um método changeValuesNullInArray(String[] a)