当前位置:编程学习 > wap >>

求助:发信号码与字符串比较恒为否,怎么回事?

程序接收了短信广播,从中获取了发信人号码,然后与预设的号码比较,结果却是恒为否。代码如下:
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
for(Object p : pdus){
 byte[] sms = (byte[]) p;
 SmsMessage message = SmsMessage.createFromPdu(sms);
 String number = message.getOriginatingAddress();
 if(number=="661"); // DO……
}

明明发送号码是661结果判断就是为否,Log.i输出number显示也为"661"
另外如何从在这个intent中获取收信号码呢?(因为手机是双卡双待,需要区别一下是发到哪个卡的短信)

android第一问,可能问题比较弱智,请大家指教。 --------------------编程问答-------------------- 用equals --------------------编程问答-------------------- 别看java的String可以用+号,但java是不支持操作符重载的。所以那个+号只是特例,所以String的==号其实是对对象引用的比较,相当于比较它们的指针(java里没指针,但其实所有对象本质上来说就是指针)。若要比较内容,可以调用equals方法,这是Object类的方法,所以理论上任何一个java类都带有这个方法,至于有没有实现,就是另一回事了。不过一般系统自带的对象类型都是实现了的 --------------------编程问答-------------------- 用equals成功,java也不懂,equals和==有什么区别,这里为什么不能用==呢 --------------------编程问答-------------------- 同2L,用obj.equals(o) --------------------编程问答-------------------- "661".equals(number);
==比较的是两个对象,
equals比较的是对象的值
虽然值相等,但是是两个对象,各自的地址不同,所有不相等。 --------------------编程问答-------------------- 明白了,第二个问题有朋友指教一下吗?
补充:移动开发 ,  Android
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,