我有一个我很困惑的问题。我在我的Android应用程序的代码下面几行:在Android上,Java中的字符串似乎并不相同,尽管它们打印的是相同的
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个字符,就像您期望的那样。
有没有人知道这里发生了什么?
CurrentNode.getNodeName()。toString()。equals(“start”)==“start”.equals(CurrentNode.getNodeName()。toString())的结果是什么? – 2017-09-22 08:00:22
@MohammedShareefC I' D期待'真实',但你可以测试它找出。 – 2017-09-22 12:31:54
yup。对不起,懒惰。 – 2017-09-22 12:40:03