zoukankan      html  css  js  c++  java
  • 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));
      }
    }

     

  • 相关阅读:
    Pair Project: Elevator Scheduler
    Project: Individual Project
    【homework week5】初步了解敏捷开发——自由与约束的哲学统一
    【homework #1】第一次作业被虐感受
    To be transfered
    谈敏捷,谈开发 --《Agile Software Development》读后感
    结对编程---附加题作业(作业请参考相应博客)
    结对编程-电梯调度算法的实现 (附加题部分请参考对应博客)
    必应缤纷桌面的必应助手-软件分析和用户市场需求之-----二.体验部分 Ryan Mao (毛宇11061171) (完整版本请参考团队博客)
    对学长所谓“改变世界的游戏”《shield star》的运行感想-毛宇部分(完整版本请参考团队博客)
  • 原文地址:https://www.cnblogs.com/houfeng/p/1631418.html
Copyright © 2011-2022 走看看