我有数据库表格联系人列Mobile
,officePhone
。
此处用户将按如下方式保存数据。
mobile=+91 (937) 2582 6433
officephone= (843)-6486-6783
现在我需要检索没有任何特殊字符的电话号码
我发现以下查询的一些方法,
Select REPLACE(mobile,'+','') as mobile , REPLACE(officePhone,'+','') as officePhone from Contacts;
这将仅删除“+”符号,但我想删除包括空格在内的所有特殊符号。 请帮助我。
答案 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();
}