Ho un problema di cui sono piuttosto confuso. Ho le seguenti righe di codice nella mia applicazione Android:Le stringhe non sembrano essere uguali in Java su Android, anche se stampano lo stesso
System.out.println(CurrentNode.getNodeName().toString());
if (CurrentNode.getNodeName().toString() == "start") {
System.out.println("Yes it does!");
} else {
System.out.println("No it doesnt");
}
Quando guardo l'uscita della prima istruzione println si presenta in LogCat come "start" (senza le virgolette ovviamente). Ma poi, quando l'istruzione if viene eseguita, passa alla dichiarazione else e stampa "No it does not".
Mi chiedevo se il nome del nodo potesse contenere un tipo di carattere non stampabile, quindi ho controllato la lunghezza della stringa proveniente da getNodeName() ed è lunga 5 caratteri, come ci si aspetterebbe .
Qualcuno ha idea di cosa sta succedendo qui?
Quale sarà il risultato di 'CurrentNode.getNodeName(). ToString(). Equals (" start ") ==" start ".equals (CurrentNode.getNodeName(). ToString()'? –
@MohammedShareefC I ' D aspettatevi 'true', ma potete provarlo per scoprirlo –
yup, mi dispiace essere troppo pigro –