// StringCompare.java: compare Strings
public class StringCompare {
public static void main (String[] args) {
String s1 = new String("Aardvark");
String s2 = new String("Aaron");
String s3 = new String("Aragon");
System.out.println("s1.compareTo(s1): " + s1.compareTo(s1));
System.out.println("s1.compareTo(s2): " + s1.compareTo(s2));
System.out.println("s1.compareTo(s3): " + s1.compareTo(s3));
System.out.println("s2.compareTo(s1): " + s2.compareTo(s1));
System.out.println("s2.compareTo(s2): " + s2.compareTo(s2));
System.out.println("s2.compareTo(s3): " + s2.compareTo(s3));
System.out.println("s3.compareTo(s1): " + s3.compareTo(s1));
System.out.println("s3.compareTo(s2): " + s3.compareTo(s2));
System.out.println("s3.compareTo(s3): " + s3.compareTo(s3));
}
}
/* Output is:
s1.compareTo(s1): 0
s1.compareTo(s2): -11
s1.compareTo(s3): -17
s2.compareTo(s1): 11
s2.compareTo(s2): 0
s2.compareTo(s3): -17
s3.compareTo(s1): 17
s3.compareTo(s2): 17
s3.compareTo(s3): 0
*/
Notice that
First is the class StringCompare2 that tests this out:
// StringCompare2.java: compare Strings in reverse order
public class StringCompare2 {
public static void main (String[] args) {
ReverseString s1 = new ReverseString("Aardvark");
ReverseString s2 = new ReverseString("Aaron");
ReverseString s3 = new ReverseString("Aragon");
System.out.println("s1.compareTo(s1): " + s1.compareTo(s1));
System.out.println("s1.compareTo(s2): " + s1.compareTo(s2));
System.out.println("s1.compareTo(s3): " + s1.compareTo(s3));
System.out.println("s2.compareTo(s1): " + s2.compareTo(s1));
System.out.println("s2.compareTo(s2): " + s2.compareTo(s2));
System.out.println("s2.compareTo(s3): " + s2.compareTo(s3));
System.out.println("s3.compareTo(s1): " + s3.compareTo(s1));
System.out.println("s3.compareTo(s2): " + s3.compareTo(s2));
System.out.println("s3.compareTo(s3): " + s3.compareTo(s3));
}
}
/* Output is: (the reverse of the normal compareTo for strings)
s1.compareTo(s1): 0
s1.compareTo(s2): 1
s1.compareTo(s3): 1
s2.compareTo(s1): -1
s2.compareTo(s2): 0
s2.compareTo(s3): 1
s3.compareTo(s1): -1
s3.compareTo(s2): -1
s3.compareTo(s3): 0
*/
Then comes the class ReverseString that
implements strings in reverse order:
// ReverseString.java: compare Strings in reverse order
public class ReverseString implements Comparable {
String internal;
public ReverseString(String s) {
internal = s;
}
public int compareTo(Object t) {
if (internal.compareTo(((ReverseString)t).internal) < 0) return 1;
else if (internal.compareTo(((ReverseString)t).internal) > 0) return -1;
else return 0;
}
}
The interface that is being implemented above is the following:
public interface Comparable
{
int compareTo(Object obj);
}