用于替换多个字符的Sqlite replace()

时间:2014-02-28 05:59:12

标签: android sqlite

我有数据库表格联系人列MobileofficePhone

此处用户将按如下方式保存数据。

mobile=+91 (937) 2582 6433
officephone= (843)-6486-6783

现在我需要检索没有任何特殊字符的电话号码

我发现以下查询的一些方法,

Select REPLACE(mobile,'+','') as mobile , REPLACE(officePhone,'+','') as officePhone from Contacts;

这将仅删除“+”符号,但我想删除包括空格在内的所有特殊符号。 请帮助我。

2 个答案:

答案 0 :(得分:1)

它不完全漂亮,但你可以嵌套replace()函数:

replace(replace(replace(replace(mobile,' ',''),'-',''),'(',''),')','')

同意,如果可能的话,你可以在sqlite之外格式化,但这并不总是想要/可能。例如。我有一个案例,WHERE部分需要替换。

答案 1 :(得分:0)

在插入或从数据库中选择之前尝试删除特殊字符,如下所示

String number = removeSpecialCharacters("+91 (937) 2582 6433");
System.out.println("number::::"+number.trim().replace(" ", ""));
String number1 = removeSpecialCharacters("(843)-6486-6783");
System.out.println("number1::::"+number1.trim().replace(" ", ""));

public static String removeSpecialCharacters(String string) {
   StringBuffer sbuffer = new StringBuffer();
    for(int i=0;i<string.length();i++) {
        char character = string.charAt(i);
        if (Character.isLetterOrDigit(character) || Character.isSpaceChar(character))
            sbuffer.append(character);
    }
    return sbuffer.toString();
}