【问题标题】:Sort website names alphabetically by the extensions and the name of the website in Java按 Java 中的扩展名和网站名称的字母顺序对网站名称进行排序
【发布时间】:2016-01-18 20:42:40
【问题描述】:

我有一个 .dat 文件,其中包含需要按网站扩展名(.com、.edu、.org...等)按字母顺序排序的网站列表。它还需要按域名字母顺序排序。我必须为此编写一个 compareTo() 方法。我已经按扩展名排序了,所以现在我只需要按域名排序。他们从另一个类的数组列表进入这个类

类 SiteName 实现 Comparable

{

private String webname;
public SiteName(String n){
    webname=n;
}
public int compareTo(SiteName s){
    int ext1=this.webname.indexOf('.');
    int ext2=s.webname.indexOf('.');        
    if (this.webname.charAt(ext1+1)>s.webname.charAt(ext2+1))
        return 1;
    else return -1;



}
public String toString(){
    return webname;
}

}

【问题讨论】:

    标签: java sorting web compareto alphabetical


    【解决方案1】:

    使用indexOf() 中的索引为扩展名添加子串,然后比较扩展名。如果扩展名相同,请比较完整的站点名称:

    public int compareTo(SiteName that) {
        int cmp = this.getWebnameExt().compareTo(that.getWebnameExt());
        if (cmp == 0)
            cmp = this.webname.compareTo(that.webname);
        return cmp;
    }
    private String getWebnameExt() {
        int idx = this.webname.indexOf('.');
        return (idx == -1 ? "" : this.webname.substring(idx));
    }
    

    为了提高性能,您可能需要缓存扩展。

    【讨论】:

    • 谢谢你,非常感谢你的帮助!
    猜你喜欢
    • 2010-09-29
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多