俺想把一个 string 中包含的十六进制 ASCII 码转换成对应的字符,不知道有没有比较好的方法?   例如: %2Fabc%2Fdef  转换成  /abc/def
   谢谢啊!

解决方案 »

  1.   

    import java.util.regex.*;
    public class T1118 {    /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            String str = "%2Fabc%2Fdef";
            Pattern p = Pattern.compile("%([0-9a-fA-F]{2})");
            Matcher m = p.matcher(str);
            while(m.find()){
                char c = (char)Integer.parseInt(m.group(1),16);
                str=str.replace(m.group(),""+c);
            }
            System.out.println(str);    }}
      

  2.   

    String str="%2Fabc%2Fdef";
    System.out.println(URLDecoder.decode(str));
      

  3.   

    楼上的方法不错,
    不过查了api,
    public static String decode(String s)
    Deprecated.应该需要加上具体的编码方式
    public static String decode(String s,
                                String enc)
                         throws UnsupportedEncodingException
      

  4.   

    to believefym
    是Deprecated,没错。
    主要是现在必须输入一个编码
    我调用的方法是使用系统默认编码所以要避免用这个Deprecated的方法就这样把
    结果是一样的
    URLDecoder.decode(str,"gb2312")
      

  5.   

    信誉分制度简短说明 
    以下情况信誉分会变化:
    一、信誉分增加:
     1、FAQ相关制度;
     2、解封账号返回信誉分,但一般根据具体情况只返回20~50分;----
    我提交了一些FAQ。