精彩的字符串内容校验

Wonderful string content check

我正在使用此代码,它成功检索了收到的消息:

Bundle bundle = intent.getExtras();
Object[] object = (Object[]) bundle.get("pdus");
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) object[0]);
String message = smsMessage.getMessageBody().trim();

消息正好等于 "test" 并且 message.length() 等于 4(没有隐藏字符)但是波纹管命令 returns false!

if (message == "test") ...

如何使用 == 而不是 equals()?

谢谢...

您应该使用以下:-

message.equals("test")

有关更多信息,请阅读以下问题:-

How do I compare strings in Java?

使用

message.equals("test")

“==” 运算符实际上是在检查字符串对象(obj1 和 obj2)是否指向完全相同的内存位置。

但是,equals() 方法实际上是为了比较 2 个对象的 内容(值),而不是它们的位置在记忆中。

有关详细信息,请参阅 What's the difference between ".equals" and "=="?