Estou iniciando no Java e estou estudando e me deparei com um probleminha que não sei como resolver. A questão é a seguinte, possuo um HashMap onde a chave e os valores são uma String e possuo um array. Como as posições deste array são uma char, e quero fazer uma comparação do tipo:
if(posicaoArray == chaveMapa){
// true
}else{
// false
}
Assim não vai funcionar, pois um é do tipo char e outro é do tipo String. Vi vários exemplos aqui no forum, mas nenhum funcionou como esperava.
Opa!
Olhe cara, já é tarde da noite, mas eu vou tentar alguma coisa.
Eu faria assim (do jeito que eu acredito ser mais gambi): uma String auxiliar, que recebe o char e usar o equals:
String aux = "" + charDoArray;
for (String k : hashMap.keySet()) {
if (aux.equals(k)) {
tantantan;
}
}
Eu não sei se é gambi e se funciona, mas dá pra tentar.
No seu código você colocou o seguinte:
if (posicaoArray == chaveMapa) ...
posicaoArray é um int, certo? Então nunca vai ser igual. Se você quer comparar o que tem NAQUELA posição, você pode fazer o que tem acima. Senão, acho que se as suas chaves não são inteiros, não vai funcionar. Se forem inteiros, você usa o Integer.parseInt(chave):
if (posicaoArray = Integer.parseInt(chave)) {
tantantan;
}
if (x.toCharArray()[0]==c) {
System.out.println(“yeeeeesssss!!!”);
}
else {
System.out.println(“falei que ia dar m…”);
}[/code]
Maaaasss… você esta fazendo uma comparação de String com char, vc precisa ter certeza que sua String só vai ter uma posição, e que ambas as letras (se forem letras) sejam maiusculas ou minúsculas… se voce comparar “A” com ‘a’, vai dar false…
Não é melhor fazer um array de Strings ou bolar outra solução, e todo mundo fica feliz?