繁体   English   中英

替换字符串中不允许的字符的最佳方法是什么?

[英]What is the best way to replace not allowed characters in a string?

在我的一个项目中,我需要删除除 aZ 和 1-9 之外的所有不寻常字符。 我找到了一种方法,但我认为我的解决方案丑陋且效率不高。

有什么方法可以改进我的解决方案以提高效率?

public static String removeSpecialCharactersAndHTML(String text) {
    String result = text;

    result = result.replace(">", ">");
    result = result.replace("&lt;", "<");
    result = result.replace("&#38;", "&");
    result = result.replace("&quot;", "\"");
    result = result.replace("&nbsp;", " ");
    result = result.replace("&amp;", "&");

    result = result.replace("]]>", "");
    result = result.replace("‘", "'");
    result = result.replace("’", "'");
    result = result.replace("`", "'");
    result = result.replace("´", "'");
    result = result.replace("“", "\"");

    // .....

    result = result.replace("”", "\"");
    result = result.replace("³", "3");
    result = result.replace("²", "2");

    return result 
}

要从字符串中删除HTML,您不应编写自己的代码,而应使用一些现有的库。 他们不会处理代码中的许多错误。

替换某些字符的方法很好。 但最后,您必须从字符串中删除所有终端不会处理的字符。 即,定义允许的字符,而不是定义禁止的字符。

如果您还需要删除空格,则可以使用以下方法:

 result = result.replaceAll("[^a-zA-Z0-9]", "");

如果你想在你的字符串中有空格,你可以使用这种方法:

result = result.replaceAll("[^a-zA-Z0-9\\s]", "");

还建议使用第三方库提供 go。 你也可以用这个

https://commons.apache.org/proper/commons-text/javadocs/api-release/org/apache/commons/text/StringEscapeUtils.html#escapeHtml4-java.lang.String-

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM