• java实现的escape和Unescape


     


    class    EscapeUnescape
    {
      public  static  String    escape  (String  src)
      {
        int  i;
        char  j;
        StringBuffer  tmp  =  new  StringBuffer();
        tmp.ensureCapacity(src.length()*6);
        for  (i=0;i<src.length()  ;i++  )
        {
          j  =  src.charAt(i);
          if  (Character.isDigit(j)  ||  Character.isLowerCase(j)  ||  Character.isUpperCase(j))
            tmp.append(j);
          else
            if  (j<256)
            {
            tmp.append(  "%"  );
            if  (j<16)
              tmp.append(  "0"  );
            tmp.append(  Integer.toString(j,16)  );
            }
            else
            {
            tmp.append(  "%u"  );
            tmp.append(  Integer.toString(j,16)  );
            }
        }
        return  tmp.toString();
      }
      public  static  String    unescape  (String  src)
      {
        StringBuffer  tmp  =  new  StringBuffer();
        tmp.ensureCapacity(src.length());
        int    lastPos=0,pos=0;
        char  ch;
        while  (lastPos<src.length())
        {
          pos  =  src.indexOf("%",lastPos);
          if  (pos  ==  lastPos)
            {
            if  (src.charAt(pos+1)=='u')
              {
              ch  =  (char)Integer.parseInt(src.substring(pos+2,pos+6),16);
              tmp.append(ch);
              lastPos  =  pos+6;
              }
            else
              {
              ch  =  (char)Integer.parseInt(src.substring(pos+1,pos+3),16);
              tmp.append(ch);
              lastPos  =  pos+3;
              }
            }
          else
            {
            if  (pos  ==  -1)
              {
              tmp.append(src.substring(lastPos));
              lastPos=src.length();
              }
            else
              {
              tmp.append(src.substring(lastPos,pos));
              lastPos=pos;
              }
            }
        }
        return  tmp.toString();
      }
      public  static  void  main(String[]  args)  
      {
        String  tmp="\"!@#$%^&*()_+|\\=-,./?><;'][{}\"";
        System.out.println("testing escape : "+tmp);
        tmp  =escape(tmp);
        System.out.println(tmp);
        System.out.println("testing unescape :"+tmp);
        System.out.println(unescape(tmp));
      }
    }

     

  • 相关阅读:
    jQuery之选择器
    JAVA之网页截屏
    AJAX之JSON
    JSP之AJAX
    JSP之邮箱检验
    【16】LRUChache
    hashmap与currentHashMap
    Day1 工厂模式
    D0 设计模式
    【15】【有点特殊的dp】 剪绳子
  • 原文地址:https://www.cnblogs.com/houfeng/p/1631418.html
Copyright © 2020-2023  润新知