Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从电话号码中删除国家/地区代码_Java_Android_Country Codes - Fatal编程技术网

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。国家代码有“+”符号吗?你基本上是在问如何进行字符串操作吗?如果是这样的话,请阅读一些相关教程。不,我用这个号码来匹配一些东西,国家代码使之无法匹配,所以我需要删除国家代码。是的,它显示+登录日志请编辑更多信息。不鼓励只编写代码和“尝试此”答案,因为它们不包含可搜索的内容,并且不解释为什么有人应该“尝试此”。请使用更多信息进行编辑。不鼓励只编写代码和“试试这个”答案,因为它们不包含可搜索的内容,也不解释为什么有人应该“试试这个”。