我正在尝试从手机中检索手机号码,然后将这些号码与在线php / sql数据库进行比较。
一切都运转良好,除非我有一个数字不能正确匹配,即使我知道它在那里。我已经尝试使用.equals("相同的数字")测试android中的数字,并且它返回false,即使print语句是相同的。我已经从数字中删除了所有空格。
有没有人知道为什么从手机联系中取出的号码合同不会是真正的字符串,或者有任何其他想法!! ??我也试过.toString(),这没有用!
下面是我用来测试从具有硬编码的相关ID的联系人中提取的号码的代码。电话号码按预期返回,并在日志输出中显示。当我尝试将它与一串相同内容进行比较时,它会返回false!我无法理解这一点!
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] {ContactsContract.CommonDataKinds.Phone.NUMBER},
ContactsContract.Data.CONTACT_ID+" = 148" , null, null);
while (pCur.moveToNext()) {
tempNum=pCur.getString(0).toString();
tempNum=tempNum.trim();
tempNum=tempNum.replaceAll("\\s+","");
}
Log.d("tempNum = ", tempNum); //confirm tempNum is as expected
if(tempNum.equals("07594*****0"))Log.d("test","Match!");
//number removed after paste to forum
else Log.d("test","No Match!");
答案 0 :(得分:0)
我的建议是在log.d中打印整个数组(我猜你将它存储在一个数组中)并查看它是否存在。当你处于某种情况并且不知道如何解决问题时,多数民众赞成总是能够让你清醒过来。