我想用Underscore替换Special character。我面临的问题不是用单个下划线替换,而是出现了2个下划线。以下是我的代码。
String string = "Sathesh, Soundar";
System.out.println(string.replaceAll("[,\\s]","_"));
这里我的输出为Sathesh__Soundar
。而不是这个,我想得到Sathesh_Soundar
。如果我有更多的继续特殊字符,一切都应该用单个下划线替换。
答案 0 :(得分:3)
首先,您需要定义什么是特殊字符。我假设您将其定义为 - 除字母数字之外的所有字符。那么正则表达式应该是[^a-zA-Z0-9]+
此正则表达式解释为here。
然后代码应该如下
String string = "Sathesh, Soundar";
System.out.println(string.replaceAll("[^a-zA-Z0-9]+","_"));
答案 1 :(得分:1)
尝试使用此
s.replaceAll("[^\\w\\d]+", "_");
答案 2 :(得分:-1)
使用单个下划线删除','后的空格,以获得所需的输出。
String string = "Sathesh,Soundar"; //prints Sathesh_Soundar