我有这么一串字符串(<a href="/creport/files/20091130/xlsfiles/CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls"><tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls</tt></a></td>)乱码问题就不管他.但是我只想得到(CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls"><tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls)
该怎么处理啊.麻烦各位给点方法.

解决方案 »

  1.   

    就是把<a href="/creport/files/20091130/xlsfiles/ ,</tt> </a> </td>去掉么?
      

  2.   

    这个去掉的意义何在呢………………中间的"> <tt>也要留着啊?还是只取前一半或者后一半?
      

  3.   

    String str = "<a href="/creport/files/20091130/xlsfiles/CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls"> <tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls </tt> </a> </td>";String str_ok = str.replaceAll("<a href="/creport/files/20091130/xlsfiles/ ,","").replaceAll("</tt> </a> </td>",""); 比较白痴的做法~~~~~~~~~~
      

  4.   

    你是不是用输入输出流弄得,你把字符串写到文件中,当你读出来的时候还要在重新编码撑“iso-8859-1”然后用机器默认的编码形式输出
      

  5.   

    因为中间的乱码是编码问题.我想得到之后再来编码.....
    从CDMA到xls有用.其它的都去掉
      

  6.   

    问题是cdma到xls有两段,你要取也应该分开取吧……………… public static void main(String[] args) {
    String s = "<a href=\"/creport/files/20091130/xlsfiles/CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls\"> <tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls </tt> </a> </td>";
    String regex = "(CDMA.*?xls)";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(s);
    while (m.find()) {
    System.out.println(m.group());
    }
    }输出结果:
    CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls
    CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls
      

  7.   

    从cdma到xls有两段.难道这两段是一样的.只是纺码方式不同
      

  8.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class RegexTest {
      public static void main(String[] args) {
            String s = "<a href=\"/creport/files/20091130/xlsfiles/" +
             "CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls\">" +
             "<tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls</tt></a></td>";
            Pattern p = Pattern.compile("(?<=/).[^/]*\\.xls");
            Matcher m = p.matcher(s);
            if(m.find()) {
                System.out.println(m.group());
            }
        }
    }
      

  9.   


    这两段是一样的。
    第一段是你URLEncoder.encode造成的。第二段应该是页面和servlet里面编码不一样造成的,比如一个UTF-8,一个GBK or GB2312。
      

  10.   

    我的意思其实是不要一起取出来,既然是一样的,单独取一段就好了,全取出来中间还有那啥的多余内容啊要一起去出来稍微改一点点就好了,把懒惰改贪婪……
    public static void main(String[] args) {
    String s = "<a href=\"/creport/files/20091130/xlsfiles/CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls\"> <tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls </tt> </a> </td>";
    String regex = "(CDMA.*xls)";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(s);
    while (m.find()) {
    System.out.println(m.group());
    }
    }保险一点
    public static void main(String[] args) {
    String s = "<a href=\"/creport/files/20091130/xlsfiles/CDMA%E7%BD%91%E6%80%BB%E9%83%A8%E6%96%B0%E6%8C%87%E6%A0%87%E4%BD%93%E7%B3%BB%E5%B0%8F%E6%97%B6%E6%8A%A5%E8%A1%A8%242009-11-30_01-00-00.xls\"> <tt>CDMA缃戞?婚儴鏂版寚鏍囦綋绯诲皬鏃舵姤琛?$2009-11-30_01-00-00.xls </tt> </a> </td>";
    String regex = "<a href.*?(CDMA.*?xls) </tt> </a> </td>";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(s);
    while (m.find()) {
    System.out.println(m.group(1));
    }
    }
      

  11.   

    最简单的答案来了:
    String str = (........);//你的东西
    str.substring(str.indexOf("/xlsfiles/")+"/xlsfiles/".length(),str.indexOf("</tt>"));