Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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_Regex_String_Replace - Fatal编程技术网

Java 从字符串中删除空格和特殊字符

Java 从字符串中删除空格和特殊字符,java,android,regex,string,replace,Java,Android,Regex,String,Replace,如何格式化字符串电话号码以删除特殊字符和空格 数字的格式如下(123)123 1111 我试图让它看起来像这样:1231111 到目前为止,我有: phone = phone.replaceAll("\\s",""); phone = phone.replaceAll("(",""); 第一行将删除空格。然后我在删除括号时遇到问题。Android studio在“(“下划线并抛出错误未关闭的组您需要转义(,因为它表示正则表达式中的元字符(组的开头)。与相同) 要删除所有非数字字符,可以使用 r

如何格式化字符串电话号码以删除特殊字符和空格

数字的格式如下(123)123 1111

我试图让它看起来像这样:1231111

到目前为止,我有:

phone = phone.replaceAll("\\s","");
phone = phone.replaceAll("(","");

第一行将删除空格。然后我在删除括号时遇到问题。Android studio在
“(“
下划线并抛出错误
未关闭的组

您需要转义
,因为它表示正则表达式中的元字符(组的开头)。与
相同)


要删除所有非数字字符,可以使用

replaceAll("\\D+",""); \\ \D is negation of \d (where \d represents digit) 
如果只想删除空格,
您可以定义自己喜欢的空格

无论如何,您的问题是由于正则表达式中的一些字符是。其中有
,它可以表示组的开始。类似地
可以表示组的结束

要使这些特殊字符成为文字,您需要对它们进行转义。您可以通过多种方法来实现

  • “\\”(“
    -正则表达式中的标准转义
  • “[(]”
    -使用字符类进行转义
  • “\\Q(\\E”
    -
    \Q
    \E
    创建引号-这意味着此区域中的正则表达式元字符应被视为简单文本
  • Pattern.quote(“”)
    -此方法在正则表达式编译器中使用
    Pattern.LITERAL
    标志,指出正则表达式中使用的元字符是简单的文本,没有任何特殊意义

您可以删除除数字以外的所有内容:

phone = phone.replaceAll("[^0-9]","");

请详细说明您的答案好吗?StackOverflow上不接受仅使用代码的答案。但它也会删除+,例如,如果我使用国家代码为+1(223)的电话号码223 12112它将向我显示122322312112这将是一个无效的!@Faakhir此答案基于OP要求,该要求规定
数字的格式如下(123)123 1111
所以它不包括代表国家代码的
+XX
部分。但答案还包含描述如何只删除空格和括号的版本,所以它应该保留其他字符,如
+
replaceAll([\\s()]+“,”)
。选择符合您需要的版本。令人惊讶的是,大量其他详细的答案,其中许多根本不起作用,您简洁的答案成功了!谢谢!
replaceAll("[\\s()]+","");
phone = phone.replaceAll("[^0-9]","");
public static void main(String[] args){
    // TODO code application logic here
  String str = "(test)";
  String replaced= str.replaceAll("\\(", "").replaceAll("\\)", "");
  System.out.println(replaced);


}