java - 从 Java 中的字符串中有效地删除特定字符(一些标点符号)?

标签 java regex string

在 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/

相关文章:

javascript替换索引处的字符问题

java - 我们可以改变java的主要方法吗?

java - Drawer_layout 的 findViewById 始终返回 null

java - 如何将字符串从txt文件转换为java中的不同子字符串

javascript - 在 Javascript 中使用正则表达式查找并更改 div

python - 如何确保 re.findall() 停在正确的位置?

iphone - 如何测试 NSString 是否为 nil?

java - 启动一个进程而不消耗它的输出

java - 单例模式

python - 在Python中匹配以特定扩展名结尾的文件名的简洁方法?