一个处理字符串的工具类StringEscapeUtils

简介: 一个处理字符串的工具类StringEscapeUtils

最近有用到一个字符串处理类StringEscapeUtils,来自于apache工具包common-lang中,,这个类能很方便的进行html,xml,java等的转义与反转义;

  • 引入依赖:
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.6</version>
</dependency>

这个版本还有sql转义防注入攻击的功能,在3.0版本后好像没有了就;


StringEscapeUtils中都是静态方法,方便调用;主要方法如下图;

在这里插入图片描述
如图所示,此类可以处理

CSV,HTML,XML,SQL,JAVA 等类型的字符串

如:

  • 处理html中的特殊字符;
    String html = "<div><br />  <p>tag&p</p> > </div>";
    System.out.println(StringEscapeUtils.escapeHtml(html)); //转义
    String uhtml = StringEscapeUtils.unescapeHtml(html); //反转义

其他处理方式类似;

需要注意的是,在进行反转义的时候,若字符串没有待转的字符,那么不会对字符串进行任何处理

以下代码实现了,

将html的空格符号替换为空字符的功能;
防sql注入漏洞的
编译java代码字符串;
import org.apache.commons.lang.StringEscapeUtils;

public class TestStingUnspace {

    public static void main(String[] args) {

        String html = "<div><br />  <p>tag&p</p> > </div>";
        //System.out.println(html.replaceAll(" ","<p> </p>"));
        System.out.println(html);
        System.out.println(StringEscapeUtils.escapeHtml(html));
        String uhtml = StringEscapeUtils.unescapeHtml(html);
        System.out.println(uhtml);
        String ujava = StringEscapeUtils.unescapeJava(uhtml);
        System.out.println(ujava);
        String result = CharMatcher.whitespace().replaceFrom(ujava," ");
        System.out.println(result);

        System.out.println(StringEscapeUtils.escapeJava("  System.out.println(\"测试\")//这是注释"));

        System.out.println(StringEscapeUtils.escapeSql("select * from ta where id = 1 or '1=1'"));
    }

}
相关文章
|
6月前
|
数据安全/隐私保护
常用的字符串加密解密工具类
常用的字符串加密解密工具类
|
Java
Java去除字符串前面的0的方法
在日常开发及接口对接中,部分数据可能会存在以0开头的字符串形式的数据,此时需要将开头的一个或多个0去除,方法如下:
1732 1
|
6月前
字符串工具类总结(全)
字符串工具类总结(全)
|
Java
【工具类】java数字金额转换成大写
【工具类】java数字金额转换成大写
608 0
|
Java
JAVA文件与base64字符串互相转换工具类
JAVA文件与base64字符串互相转换工具类
476 0
|
Java Maven
Java如何实现截取字符串
Java中实现截取字符串的几种方式
1490 0
Java如何实现截取字符串
数组常用方法总结(部分方法利用了工具类)
数组常用方法总结(部分方法利用了工具类)
106 0
|
安全
CollectionUtils工具类的常用方法
集合判断:   例1: 判断集合是否为空:  CollectionUtils.isEmpty(null): true  CollectionUtils.isEmpty(new ArrayList()): true    CollectionUtils.
2058 0