【发布时间】:2013-07-08 16:17:19
【问题描述】:
在 Java 中,从字符串中删除给定字符的最有效方法是什么?目前,我有这个代码:
private static String processWord(String x) {
String tmp;
tmp = x.toLowerCase();
tmp = tmp.replace(",", "");
tmp = tmp.replace(".", "");
tmp = tmp.replace(";", "");
tmp = tmp.replace("!", "");
tmp = tmp.replace("?", "");
tmp = tmp.replace("(", "");
tmp = tmp.replace(")", "");
tmp = tmp.replace("{", "");
tmp = tmp.replace("}", "");
tmp = tmp.replace("[", "");
tmp = tmp.replace("]", "");
tmp = tmp.replace("<", "");
tmp = tmp.replace(">", "");
tmp = tmp.replace("%", "");
return tmp;
}
如果我使用某种 StringBuilder、正则表达式或其他东西会更快吗?是的,我知道:分析它并查看,但我希望有人可以提供他们头顶的答案,因为这是一项常见任务。
【问题讨论】:
-
一般来说,Java Regex 的表现相当不错,除非我在做一些对性能非常敏感的事情,否则我通常只使用'm 并继续前进。 tmp.replaceAll("\\W", "") 也会去掉字符串中的标点符号和空格。
-
澄清请求:请定义标点符号是什么意思。 只是您在上面列出的那些字符吗?破折号呢?弯引号呢?非英语语言的引号符号呢?
-
关注this,下次您可能会自己找到有关正则表达式的解决方案。
-
@Pshemo 那里没有直接答案。但是除了复制之外,这将有助于理解..下次他可能会找到解决这种事情的方法。我从不说那将是答案。我说这可能对你有帮助