本帖最后由 tomorrowzm 于 2011-02-12 14:06:35 编辑

解决方案 »

  1.   

    为什么不先排序了再写hyperlink再拼字符串?
      

  2.   

    用<br>分一下,處理下后放入一個map中key     value 
    ---------------------------------
    abc     <a href='xx.html'>abc</a>
    acd     <a href='xx.html'>abc</a>
    bcd     <a href='xx.html'>abc</a> 然後排序
      

  3.   

    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;public class Test {
    public static void main(String[] args) { String hyperlink = "<a href='xx.html'>acd</a><br><a href='xx.html'>dbc</a><br><a href='xx.html'>bcd</a>"; String[] str = hyperlink.split("<br>");

    Map<String, String> map = new TreeMap<String, String>();

    for (String string : str) {
    map.put(string.substring(string.indexOf(">")+1, string.lastIndexOf("<")), string);
    }

    Set<String> set = map.keySet();

    for (Object obj : set) {
    System.out.println(map.get(obj));
    }

    }
    }
    wan
      

  4.   

    非要做的话,先用“<br/>”split开字符,再用正则表达式去获取每个a href的链接文字,将文字和链接放进TreeMap,再迭代TreeMap读取value,拼成新的hyperlink
      

  5.   

    <a></a>里面的内容允许重复,不能作为Key存进Map,因为会覆盖掉上一个值。另求高手。谢谢。
      

  6.   

    参考了别处的代码,加上自己的思考,终于完成了。 public static String sortHyperlink(String hyperlink) {
    String thishyperlink = hyperlink;
    if(thishyperlink.indexOf("<br>")!=-1){
    String[] text = thishyperlink.split("<br>");

            String temp = "";
            for (int i = 0; i < text.length; i++) {
                for (int j = i+1; j < text.length; j++) {
                 String left = text[i].substring(text[i].indexOf(">") + 1, text[i].lastIndexOf("<"));
                 String right = text[j].substring(text[j].indexOf(">") + 1, text[j].lastIndexOf("<"));
                    if (left.compareTo(right) > 0) {
                        temp = text[i];
                        text[i] = text[j];
                        text[j] = temp;
                    }
                }
            }         
            String sorted = "";
            for (int i = 0; i < text.length; i++) {
             if(i==0){
             sorted = text[i];
             }
             else{
             sorted += "<br>"+text[i];
             }         
    }
    return sorted;
    }
    else{
    return thishyperlink;
    }
    }