code: public static String evalEscape(String str) {
          StringBuilder sb = new StringBuilder();
          char[] cs = str.toCharArray();
          for (int i = 0; i < cs.length; i++) {
              char c = cs[i];
              // 如果是转义字符
              if (c == '\\') {
                  c = cs[++i];
                  switch (c) {
                  case 'n':
                      sb.append('\n');
                      break;
                  case 'r':
                      sb.append('\r');
                      break;
                  case 't':
                      sb.append('\t');
                      break;
                  case 'b':
                      sb.append('\b');
                      break;
                  case '\'':
                  case '"':
                  case '\\':
                      sb.append(c);
                      break;
                  default:
                      throw Lang.makeThrow("evalEscape invalid char[%d] '%c'  : %s", i, c, str);
                  }
              }
              // 否则添加
              else {
                  sb.append(c);
              }
          }
          return sb.toString();
      }
docs: 将字符串根据转移字符转移
  
  @param str
  字符串
  @return 转移后的字符串