【实例描述】
用户名也就是登录系统、网站等使用的名称,也称为登录名称。一般情况下,用户名都要求使用英文、数字或符号组成,如lester_西楼听雨。这些用户名一般是根据用户注册的先后来进行排序的,这样不利于管理员的查找,本实例将实现对用户名字符串的排序。实例的运行效果如图4.17 所示。

【实现过程】
在Eclipse 中新建项目UserNameSort,并在其中创建一个UserNameSort.java 文件。在该类的主方法中创建compareTo()方法对用户名进行比较排序,并将结果以字符串数组的顺序进行输出。核心代码如下所示:
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 对象时,会自动调用compareTo 方法
ts.add(new userName("Lester"));
ts.add(new userName("Jimmy"));
ts.add(new userName("Lily"));
System.out.println(ts);
}
}
【代码解析】
按字典顺序比较两个字符串(compareTo),该比较方法基于字符串中各个字符的Unicode值。按字典顺序将此String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。具体比较方法如图4.18 所示。
【知识扩展】
字符串是否相等也是使用较频繁的一组操作。字符串对象调用String 类中的equals()方法,比较当前字符串对象是否与参数指定的字符串相同。equalsIgnoreCase()方法与equals()方法的作用与用法基本相同,只是equalsIgnoreCase()方法在运用时会忽略大小写。





