commons-lang3的StringEscapeUtils类的常用方法总结

StringEscapeUtils

    从类名能看出来,是对特定字符串转义和不转义输出的工具类,例如以下的情况,使用【类名.方法名】的方式

  • html,xml的标签(" & < >等)
  • java,javascript的转义字符(tab键, 双引号(")等)
  • csv文件中项目双引号等

    对转义字符概念还没有理解的小伙伴,现行baidu下,下面我们一组一组来介绍常用的转义和不转义方法

 

常用方法

  • escapeHtml4

方法描述:对传入的字符串中包含html代码的特殊字符进行转义

参数类型:String

返回值类型:String

    public static final String escapeHtml4(String input) {

 

  • unescapeHtml4

方法描述:对传入的字符串中包含html代码进行原样输出,对已经转义的html代码,反转义后,进行原样输入

参数类型:String

返回值类型:String

    public static final String unescapeHtml4(String input) {

测试代码:

package StringEscapeUtilsTest;

import org.apache.commons.lang3.StringEscapeUtils;

public class EscapeHtmlAndUnescapeHtmlTest {

    public static void main(String[] args) {

        System.out.println(StringEscapeUtils.escapeHtml4("

iosoft2020

"));
        System.out.println(StringEscapeUtils.unescapeHtml4("

iosoft2020

"));
        System.out.println(StringEscapeUtils.unescapeHtml4("<h1>iosoft2020</h1>"));

    }

}

执行结果

<h1>iosoft2020</h1>

iosoft2020


iosoft2020

 

  • escapeXml

方法描述:对传入的字符串中xml文件中特殊字符进行转义

参数类型:String

返回值类型:String

    public static final String escapeXml(String input) {

 

  • unescapeXml

方法描述:对传入的字符串中xml文件中特殊字符进行原样输出,对已经转义的xml文件中特殊字符,反转义后,进行原样输入

参数类型:String

返回值类型:String

    public static final String unescapeXml(String input) {

测试代码:

package StringEscapeUtilsTest;

import org.apache.commons.lang3.StringEscapeUtils;

public class EscapeXmlAndUnescapeXmlTest {

    public static void main(String[] args) {

        System.out.println(StringEscapeUtils.escapeXml("

iosoft2020

"));
        System.out.println(StringEscapeUtils.unescapeXml("

iosoft2020

"));
        System.out.println(StringEscapeUtils.unescapeXml("<p>iosoft2020</p>"));

    }

}

执行结果

<p>iosoft2020</p>

iosoft2020


iosoft2020

 

  • escapeJava

方法描述:对传入的字符串中java的特殊字符进行转义输出

参数类型:String

返回值类型:String

    public static final String escapeJava(String input) {

 

  • unescapeJava

方法描述:对传入的字符串中java的特殊字符进行原样输出

参数类型:String

返回值类型:String

    public static final String unescapeJava(String input) {

测试代码:

package StringEscapeUtilsTest;

import org.apache.commons.lang3.StringEscapeUtils;

public class EscapeJavaAndUnescapeJavaTest {

    public static void main(String[] args) {

        System.out.println(StringEscapeUtils.escapeJava("\"iosoft2020\""));
        System.out.println(StringEscapeUtils.unescapeJava("\"iosoft2020\""));

    }

}

执行结果

\"iosoft2020\"
"iosoft2020"

 

  • escapeEcmaScript

方法描述:对传入的字符串中javascript的特殊字符进行转义输出

参数类型:String

返回值类型:String

    public static final String escapeEcmaScript(String input) {

 

  • unescapeEcmaScript

方法描述:对传入的字符串中javascript的特殊字符进行原样输出

参数类型:String

返回值类型:String

    public static final String unescapeJava(String input) {

测试代码:

package StringEscapeUtilsTest;

import org.apache.commons.lang3.StringEscapeUtils;

public class EscapeEcmaScriptAndUnescapeEcmaScript {

    public static void main(String[] args) {

        System.out.println(StringEscapeUtils.escapeEcmaScript("var str = \"iosoft2020\""));
        System.out.println(StringEscapeUtils.unescapeEcmaScript("var str = \"iosoft2020\""));

    }

}

执行结果

var str = \"iosoft2020\"
var str = "iosoft2020"

 

  • escapeCsv

方法描述:

  1. 如果传入字符串中不包含逗号(,)或双引号("),字符串原样返回
  2. 如果传入字符串中包含逗号(,),字符串两边加上双引号返回
  3. 如果传入字符串中包含双引号("),则在双引号前在加上一个双引号的同时,再在字符串两边加上双引号返回

参数类型:String

返回值类型:String

    public static final String escapeCsv(String input) {

 

  • unescapeCsv

方法描述:

  1. 对传入的字符串中csv的特殊字符进行原样输出
  2. 如果传入的字符串中有两个连续双引号的话,会删除其中一个双引号

参数类型:String

返回值类型:String

    public static final String unescapeCsv(String input) {

测试代码:

package StringEscapeUtilsTest;

import org.apache.commons.lang3.StringEscapeUtils;

public class EscapeCsvAndUnEscapeCsv {

    public static void main(String[] args) {

        System.out.println(StringEscapeUtils.escapeCsv("iosoft2020"));
        System.out.println(StringEscapeUtils.escapeCsv("iosoft,2020"));
        System.out.println(StringEscapeUtils.escapeCsv("iosoft\"2020"));
        System.out.println(StringEscapeUtils.unescapeCsv("iosoft\"2020"));
        System.out.println(StringEscapeUtils.unescapeCsv("\"iosoft\"\"\"2020\""));

    }

}

执行结果

iosoft2020
"iosoft,2020"
"iosoft""2020"
iosoft"2020
iosoft""2020

 

    今天内容到此为止,最近由于新冠状性病毒全球蔓延的影响,全球的经济都不是很好,很多互联网技术公司也开始裁员,平时多做技术累积,多输出,成为那个拿完违约金,立马能找到坑的大神。

你可能感兴趣的:(apache工具类,java,字符串,正则表达式)