public static String escapeString()

in src/main/java/org/apache/commons/jexl3/parser/StringParser.java [138:194]


    public static String escapeString(final String str, final char delim) {
        if (str == null) {
            return null;
        }
        final int length = str.length();
        final StringBuilder strb = new StringBuilder(length + 2);
        strb.append(delim);
        for (int i = 0; i < length; ++i) {
            final char c = str.charAt(i);
            switch (c) {
                case 0:
                    continue;
                case '\b':
                    strb.append('\\');
                    strb.append('b');
                    break;
                case '\t':
                    strb.append('\\');
                    strb.append('t');
                    break;
                case '\n':
                    strb.append('\\');
                    strb.append('n');
                    break;
                case '\f':
                    strb.append('\\');
                    strb.append('f');
                    break;
                case '\r':
                    strb.append('\\');
                    strb.append('r');
                    break;
                case '\\':
                    strb.append('\\');
                    strb.append('\\');
                    break;
                default:
                    if (c == delim) {
                        strb.append('\\');
                        strb.append(delim);
                    } else if (c >= FIRST_ASCII && c <= LAST_ASCII) {
                        strb.append(c);
                    } else {
                        // convert to Unicode escape sequence
                        strb.append('\\');
                        strb.append('u');
                        final String hex = Integer.toHexString(c);
                        for (int h = hex.length(); h < UCHAR_LEN; ++h) {
                            strb.append('0');
                        }
                        strb.append(hex);
                    }
            }
        }
        strb.append(delim);
        return strb.toString();
    }