Java 从电话号码中删除国家/地区代码
我遇到了一个问题,一些联系人包含国家代码,而其他联系人则不包含 我有用于获取保存在列表中的联系人号码的代码。列表如下所示:Java 从电话号码中删除国家/地区代码,java,android,country-codes,Java,Android,Country Codes,我遇到了一个问题,一些联系人包含国家代码,而其他联系人则不包含 我有用于获取保存在列表中的联系人号码的代码。列表如下所示: [9999999999, 91-8888888888, 91-0000000000, 1111111111] contactNumber.replaceAll("\\s+","").replaceFirst("91-",""); 现在,我想从有国家代码的数字中删除国家代码。我想不出一个方法来检查这个 以下是我获取联系人的代码: ContentResolver cr =
[9999999999, 91-8888888888, 91-0000000000, 1111111111]
contactNumber.replaceAll("\\s+","").replaceFirst("91-","");
现在,我想从有国家代码的数字中删除国家代码。我想不出一个方法来检查这个
以下是我获取联系人的代码:
ContentResolver cr = getApplicationContext().getContentResolver(); //Activity/Application android.content.Context
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, "UPPER(" + ContactsContract.Contacts.DISPLAY_NAME + ") ASC");
if(cursor.moveToFirst())
{
do
{
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
if(Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
{
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",new String[]{ id }, null);
while (pCur.moveToNext())
{
String contactName = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME_PRIMARY));
String contactNumber = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
allContacts.add(contactName);
contactNumber = contactNumber.replaceAll("\\s+","");
allnumbers.add(contactNumber);
break;
}
pCur.close();
}
} while (cursor.moveToNext()) ;
}
}
此处,allnumbers
包含数字(其中一些带有国家代码,而另一些则没有)。如何从拥有国家代码的人那里删除国家代码
感谢您提供的任何帮助或搜索关键字。在您的带有数字数组的示例中,国家代码之间有破折号(-)。所以您只需使用indexOf来确定数字是否有国家代码。使用regexp(
[\d]+-[\d]+
)也可以做同样的事情
你也可以数数德吉特。通常,没有国家代码的数字只有10位。这取决于您的情况在您的示例中,在countrycode之间有一个破折号(-)的数字数组。所以您只需使用indexOf来确定数字是否有国家代码。使用regexp(
[\d]+-[\d]+
)也可以做同样的事情
你也可以数数德吉特。通常,没有国家代码的数字只有10位。这取决于您的情况如果要删除包含“91-”的字符串的第一次出现,只需使用replaceFirst()方法即可。因此,您的代码将以如下方式结束:
[9999999999, 91-8888888888, 91-0000000000, 1111111111]
contactNumber.replaceAll("\\s+","").replaceFirst("91-","");
如果要检查字符串是否以“91-”开头,可以使用以下命令:
if (contactNumber.startsWith("91-")) {
}
如果要删除包含“91-”的字符串的第一个实例,只需使用replaceFirst()方法即可。因此,您的代码将以如下方式结束:
[9999999999, 91-8888888888, 91-0000000000, 1111111111]
contactNumber.replaceAll("\\s+","").replaceFirst("91-","");
如果要检查字符串是否以“91-”开头,可以使用以下命令:
if (contactNumber.startsWith("91-")) {
}
试试看
contactNumber = contactNumber.replace("+91", "");
希望这有帮助…试试看
contactNumber = contactNumber.replace("+91", "");
希望这有帮助……信息太少了。你的代码在哪里?如果文件中有多个国家代码,删除这些国家代码会使电话号码变得毫无意义。对于没有国家代码的数字,最好提供一个默认的国家代码。例如,在北美,假设+1。国家代码有“+”符号吗?你基本上是在问如何进行字符串操作吗?如果是这样的话,请阅读一些相关教程。不,我用这个号码来匹配一些东西,国家代码使之无法匹配,所以我需要删除国家代码。是的,它显示+登录日志信息太少。你的代码在哪里?如果文件中有多个国家代码,删除这些国家代码会使电话号码变得毫无意义。对于没有国家代码的数字,最好提供一个默认的国家代码。例如,在北美,假设+1。国家代码有“+”符号吗?你基本上是在问如何进行字符串操作吗?如果是这样的话,请阅读一些相关教程。不,我用这个号码来匹配一些东西,国家代码使之无法匹配,所以我需要删除国家代码。是的,它显示+登录日志请编辑更多信息。不鼓励只编写代码和“尝试此”答案,因为它们不包含可搜索的内容,并且不解释为什么有人应该“尝试此”。请使用更多信息进行编辑。不鼓励只编写代码和“试试这个”答案,因为它们不包含可搜索的内容,也不解释为什么有人应该“试试这个”。