13.5.5 compareTo( ) 通常,仅仅知道两个字符串是否相同是不够的。对于排序应用来说,必须知道一个字符串是大于、等于还是小于另一个。一个字符串小于另一个指的是它在字典中先出现。而一个字符串大于另一个指的是它在字典中后出现。字符串(String)的compareTo( )方法实现了这种功能。它的一般形式如下: int compareTo(String str) 这里str是与调用字符串(String)比较的字符串(String)。比较的结果返回并被解释如表13-1所示: 表13.1 字符串比较的结果及其含义 值 含义 小于0 调用字符串小于str 大于0 调用字符串大于str 等于0 两个字符串相等 下面是一个对字符串数组进行排序的例子程序。程序中在冒泡法排序中使用compareTo( )方法确定排序的顺序: // A bubble sort for Strings. class SortString { static String arr[] = { "Now", "is", "the", "time", "for", "all", "good", "men", "to", "come", "to", "the", "aid", "of", "their", "country" }; public static void main(String args[]) { for(int j = 0; j < arr.length; j++) { for(int i = j + 1; i < arr.length; i++) { if(arr[i].compareTo(arr[j]) < 0) { String t = arr[j]; arr[j] = arr[i]; arr[i] = t; } } System.out.println(arr[j]); } } } 程序的输出是如下的单词表: Now aid all come country for good is men of the the their time to to 正如从这个例子的输出所能看到的,compareTo( )方法区分单词的大小写。单词“Now”因为是以大写字母开始的而出现在其他单词的前面,这意味着它在ASCII字符集中具有更小的值。如果想在比较两个字符串时,忽略大小写,可以使用如下的compareToIgnoreCase( )方法: int compareToIgnoreCase(String str) 除了忽略大小写之外,该方法的返回值与compareTo( )方法相同。该方法是在Java 2中新增加的。可以在前面的程序中换成这个方法。这样做了之后,“Now”将不再是第一个输出了。
<<上一页
1
2
3
4
5
6
7
8
9
10
11
12
下一页>>
|