Строки не кажутся равными в Java на Android, хотя они печатают одинаково
У меня есть проблема, о которой я немного запутался. У меня есть следующие строки кода в моем приложении для Android:
System.out.println(CurrentNode.getNodeName().toString());
if (CurrentNode.getNodeName().toString() == "start") {
System.out.println("Yes it does!");
} else {
System.out.println("No it doesnt");
}
Когда я смотрю на вывод первого оператора println, он отображается в LogCat как «начало» (без кавычек, очевидно). Но затем, когда оператор if выполняется, он переходит к оператору else и печатает «Нет, это не так».
Я подумал, может ли имя узла содержать какой-нибудь непечатаемый символ, поэтому я проверил длину строки, получаемой из getNodeName (), и она, как и следовало ожидать, составляет 5 символов.
У кого-нибудь есть идеи, что здесь происходит?