1. Java中为什么要用转义 ?
2. 常用的转义字符

3. 如何做unescape?
有些情况下我们需要忽略转义,比如将某个java方法的输出作为参数传递传去
4. 对双引号和单引号做unescape
/**** @param text* @return*/public static String unEscapeString(String text) {StringBuilder unescapeStr = new StringBuilder();for ( int i=0; i<text.length(); i++ ) {char curChar = text.charAt(i);char nextChar = curChar;if(i+1 < text.length()) {nextChar = text.charAt(i+1);}if(!(curChar == '\\' && (nextChar == '\"' || nextChar == '\''))) {unescapeStr.append(curChar);}}return unescapeStr.toString();}
5. 单引号和双引号做转义
public static String escapeString(String str, boolean isDoubleQuote) {String escapedStr = str;if(isDoubleQuote) {escapedStr = str.replace("\\\"", "\"").replace("\"", "\\\"");} else {escapedStr = str.replace("\\\"", "\"").replace("\\'", "'").replace("'", "\\'");}if(escapedStr.contains("\n")) {escapedStr = escapedStr.replace("\n", "\\n");}return escapedStr;}
6. API
https://commons.apache.org/proper/commons-text/javadocs/api-release/org/apache/commons/text/StringEscapeUtils.html#escapeJava-java.lang.String-
但是在实际使用中,可能是需要部分忽略转义,所以还是需要自定义转义和忽略转义的方法
escapeJavapublic static final String escapeJava(String input) Escapes the characters in a Deals correctly with quotes and control-chars (tab, backslash, cr, ff, etc.) So a tab becomes the characters The only difference between Java strings and JavaScript strings is that in JavaScript, a single quote and forward-slash (/) are escaped. Example: input string: He didn't say, "Stop!"
|
|




