我正在处理从我在 Android 中的默认电话簿中获取的联系人。当我从电话簿中获取联系人时,有时我会收到“-”、“(”等字符。
如果这些字符是已知的,那么我可以使用relpace()方法轻松删除它们,但我的客户抱怨说,有时他们在从电话簿获取的号码中也会看到 % like 符号。
请建议我,如何过滤从电话簿中获取的数字,以便我的文本字段中只有数字,没有其他字符。
目前我正在使用string.replace("-","");
从联系电话中删除“-”。
我正在处理从我在 Android 中的默认电话簿中获取的联系人。当我从电话簿中获取联系人时,有时我会收到“-”、“(”等字符。
如果这些字符是已知的,那么我可以使用relpace()方法轻松删除它们,但我的客户抱怨说,有时他们在从电话簿获取的号码中也会看到 % like 符号。
请建议我,如何过滤从电话簿中获取的数字,以便我的文本字段中只有数字,没有其他字符。
目前我正在使用string.replace("-","");
从联系电话中删除“-”。
您可以使用PhoneNumberUtils.stripSeparators(String)
(在 API 1+ 中可用)。
已编辑
或者你可以使用正则表达式</a>:
filterNum = filterNum.replaceAll("[^0-9]+", "");
string.replaceAll("[^0-9\\+]", "");
这里我假设数字内不会有'+'
(仅在前面)。如果有任何可能,则必须单独检查
我已经使用核心 Java 概念解决了这个问题。
/**
* removeSpecialCharacters
* @param number
* @return
*/
private String removeSpecialCharacters(String number) {
String filterNum = number;
if(filterNum.contains("-")){
filterNum = filterNum.replace("-", "");
}
if(filterNum.contains("(")){
filterNum = filterNum.replace("(", "");
}
if(filterNum.contains(")")){
filterNum = filterNum.replace(")", "");
}
if(filterNum.contains(".")){
filterNum = filterNum.replace(".", "");
}
if(filterNum.contains("/")){
filterNum = filterNum.replace("/", "");
}
if(filterNum.contains(",")){
filterNum = filterNum.replace(",", "");
}
if(filterNum.contains("#")){
filterNum = filterNum.replace("#", "");
}
if(filterNum.contains("*")){
filterNum = filterNum.replace("*", "");
}
if(filterNum.contains("+")){
filterNum = filterNum.replace("+", "");
}
if(filterNum.contains("N")){
filterNum = filterNum.replace("N", "");
}
if(filterNum.contains(";")){
filterNum = filterNum.replace(";", "");
}
if(filterNum.contains("%")){
filterNum = filterNum.replace("%", "");
}
if(filterNum.contains(" ")){
filterNum = filterNum.replace(" ", "");
}
if(filterNum.contains("@")){
filterNum = filterNum.replace("@", "");
}
if(filterNum.contains("$")){
filterNum = filterNum.replace("$", "");
}
if(filterNum.contains("^")){
filterNum = filterNum.replace("^", "");
}
if(filterNum.contains("&")){
filterNum = filterNum.replace("&", "");
}
if(filterNum.contains("_")){
filterNum = filterNum.replace("_", "");
}
if(filterNum.contains("=")){
filterNum = filterNum.replace("=", "");
}
if(filterNum.contains("~")){
filterNum = filterNum.replace("~", "");
}
if(filterNum.contains("`")){
filterNum = filterNum.replace(";", "");
}
return filterNum;
}