国番号なしのような電話番号が358541321
ある場合、電話が鳴ると、(+56 - 358541321)
または と表示されることがあり+56358541321
ます。
着信番号が最初の番号かどうかを検出する方法は?
電話番号は、電話検索のために電話メモリに保存されません。
国番号なしのような電話番号が358541321
ある場合、電話が鳴ると、(+56 - 358541321)
または と表示されることがあり+56358541321
ます。
着信番号が最初の番号かどうかを検出する方法は?
電話番号は、電話検索のために電話メモリに保存されません。
https://developer.android.com/reference/android/telephony/PhoneNumberUtils.html はきちんとしたソリューションを提供します:
import android.telephony.PhoneNumberUtils;
...
String one = "+51 - 3245678";
String two = "+513245678";
boolean isSame = PhoneNumberUtils.compare(one, two);
この問題の通常の解決策は、数値の最後の X 桁 (国によっては 7 または 8 など) を比較することです。まれに、これが誤検知につながる可能性がありますが、通常は適切な概算値であり、国または市外局番が異なる、または欠落しているという問題を回避します。
Javaregular expression
および String 関数replaceAll
を使用すると、これを簡単に行うことができます。
こちらです、
String one = "+51 - 3245678";
String two = "+513245678";
one = one.replaceAll("[^0-9]","");
two = two.replaceAll("[^0-9]","");
Toast.makeText(this, one+" -- "+two, Toast.LENGTH_LONG).show();
if(one.equalsIgnoreCase(two))
{
Toast.makeText(this, "Both Are Equal", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(this, "Different", Toast.LENGTH_LONG).show();
}