【實例描述】
用戶名也就是登錄系統(tǒng)、網(wǎng)站等使用的名稱,也稱為登錄名稱。一般情況下,用戶名都要求使用英文、數(shù)字或符號組成,如lester_西樓聽雨。這些用戶名一般是根據(jù)用戶注冊的先后來進行排序的,這樣不利于管理員的查找,本實例將實現(xiàn)對用戶名字符串的排序。實例的運行效果如圖4.17 所示。
【實現(xiàn)過程】
在Eclipse 中新建項目UserNameSort,并在其中創(chuàng)建一個UserNameSort.java 文件。在該類的主方法中創(chuàng)建compareTo()方法對用戶名進行比較排序,并將結(jié)果以字符串數(shù)組的順序進行輸出。核心代碼如下所示:
class userName implements Comparable
{
public String sName;
public userName(String sName)
{
this.sName=sName;
}
public int compareTo(Object o) // 重寫compareTo 方法
{
userName tempuser=(userName)o;
String temp=tempuser.sName;
return this.sName.compareTo(temp); // 按字符串sName 的順序排列
userName
}
public String toString()
{
return this.sName;
}
}
public class UserNameSort {
public static void main(String args[])
{
System.out.println("排序后的用戶名順序為:");
TreeSet ts=new TreeSet(); // 插入userName 對象時,會自動調(diào)用compareTo 方法
ts.add(new userName("Lester"));
ts.add(new userName("Jimmy"));
ts.add(new userName("Lily"));
System.out.println(ts);
}
}
【代碼解析】
按字典順序比較兩個字符串(compareTo),該比較方法基于字符串中各個字符的Unicode值。按字典順序?qū)⒋薙tring 對象表示的字符序列與參數(shù)字符串所表示的字符序列進行比較。具體比較方法如圖4.18 所示。
【知識擴展】
字符串是否相等也是使用較頻繁的一組操作。字符串對象調(diào)用String 類中的equals()方法,比較當前字符串對象是否與參數(shù)指定的字符串相同。equalsIgnoreCase()方法與equals()方法的作用與用法基本相同,只是equalsIgnoreCase()方法在運用時會忽略大小寫。