[英]Remove spaces and special characters from string
如何格式化字符串电话号码以删除特殊字符和空格?
该号码的格式如下(123)123 1111
我想让它看起来像这样:1231231111
到目前为止我有这个:
phone = phone.replaceAll("\\s","");
phone = phone.replaceAll("(","");
第一行将删除空格。 然后我无法删除括号。 Android工作室强调"("
并抛出错误unclosed group
。
您可以删除除数字之外的所有内容:
phone = phone.replaceAll("[^0-9]","");
删除可以使用的所有非数字字符
replaceAll("\\D+",""); \\ \D is negation of \d (where \d represents digit)
如果你只想删除空格, (
和)
你可以定义自己的角色类
replaceAll("[\\s()]+","");
无论如何,你的问题是由正则表达式中的一些字符是特殊的事实引起的。 其中有(
例如可以表示组的开始。类似地)
可以表示组的结束。
要制作这样的特殊字符文字,您需要转义它们。 你可以做很多事
"\\\\("
- 正则表达式中的标准转义 "[(]"
- 使用字符类转义 "\\\\Q(\\\\E"
- \\Q
和\\E
创建引号 - 这意味着此区域中的正则表达式元字符应视为简单字面值 Pattern.quote("("))
- 此方法在regex编译器中使用Pattern.LITERAL
标志指出正则表达式中使用的元字符是简单的文字,没有任何特殊含义 你需要在正则表达式中转义(
因为它表示元字符(组的开头)。相同)
。
phone = phone.replaceAll("\\(","");
public static void main(String[] args){
// TODO code application logic here
String str = "(test)";
String replaced= str.replaceAll("\\(", "").replaceAll("\\)", "");
System.out.println(replaced);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.