Java中String类去除标点符号的更简洁实现方法咨询
移除Java字符串中所有标点的简洁实现方式
你可以用正则表达式配合String.replaceAll()方法一次性完成所有替换,比逐个调用replace()简洁得多,尤其是需要处理的符号越多,优势越明显。
方案1:移除所有标点符号+换行符
如果想一次性移除所有标点(不止你列出的.、?、!),可以用正则的预定义字符类\p{Punct},它会匹配所有标点符号,再加上换行符\n,代码如下:
String cleanedLine = line.replaceAll("[\\p{Punct}\\n]", "");
方案2:仅移除指定的符号(.、?、!、\n)
如果只需要处理你原来列出的那几个符号,直接把它们放进正则的字符集里即可:
String cleanedLine = line.replaceAll("[.?\\!\\n]", "");
注:正则字符集[]内的大部分特殊符号不需要转义,!在这里可以直接写!,加\\只是为了更清晰,不影响效果。
对比你原来的代码,现在一行就能完成所有替换,不需要多次赋值或链式调用多个replace(),代码更简洁易维护。
内容的提问来源于stack exchange,提问作者Ma Ti
相关产品推荐
相关产品推荐

