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("<h1>iosoft2020</h1>"));
System.out.println(StringEscapeUtils.unescapeHtml4("<h1>iosoft2020</h1>"));
System.out.println(StringEscapeUtils.unescapeHtml4("<h1>iosoft2020</h1>"));}
}
执行结果
<h1>iosoft2020</h1>
<h1>iosoft2020</h1>
<h1>iosoft2020</h1>
- 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("<p>iosoft2020</p>"));
System.out.println(StringEscapeUtils.unescapeXml("<p>iosoft2020</p>"));
System.out.println(StringEscapeUtils.unescapeXml("<p>iosoft2020</p>"));}
}
执行结果
<p>iosoft2020</p>
<p>iosoft2020</p>
<p>iosoft2020</p>
- 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
方法描述:
- 如果传入字符串中不包含逗号(,)或双引号("),字符串原样返回
- 如果传入字符串中包含逗号(,),字符串两边加上双引号返回
- 如果传入字符串中包含双引号("),则在双引号前在加上一个双引号的同时,再在字符串两边加上双引号返回
参数类型:String
返回值类型:String
public static final String escapeCsv(String input) {
- unescapeCsv
方法描述:
- 对传入的字符串中csv的特殊字符进行原样输出
- 如果传入的字符串中有两个连续双引号的话,会删除其中一个双引号
参数类型: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
今天内容到此为止,最近由于新冠状性病毒全球蔓延的影响,全球的经济都不是很好,很多互联网技术公司也开始裁员,平时多做技术累积,多输出,成为那个拿完违约金,立马能找到坑的大神。