在 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、正则表达式或其他东西会更快吗?是的,我知道:对其进行剖析并查看,但我希望有人能够提供他们头脑中的答案,因为这是一项常见任务。
最佳答案
尽管 \\p{Punct}
将指定比问题中更广泛的字符范围,但它确实允许更短的替换表达式:
tmp = tmp.replaceAll("\\p{Punct}+", "");
关于java - 从 Java 中的字符串中有效地删除特定字符(一些标点符号)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17531362/