lzs
#1
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.
thingol
#2
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: :wink:](https://www.guj.com.br/images/emoji/twitter/wink.png?v=9)
lzs
#4
então mas é exatamente “V” que estou recebendo…
Focao
#5
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]
lzs
#7
Obrigado era isso mesmo que precisava
Focao
#8
[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: :wink:](https://www.guj.com.br/images/emoji/twitter/wink.png?v=9)
Focao
#10
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)