/////// SortKey.java /////// import java.util.StringTokenizer; public class SortKey { public SortKey(int pos, String dlm) { delim = dlm; // delimiter string position = pos; // key position } public SortKey(int pos) { position = pos; } public SortKey() { } // compare a and b by key, returns -1, 0, 1 public int cmp(String a, String b) { String ka = key(a); String kb = key(b); if ( ka == null ) { if ( kb == null ) return(0); else return(-1); } if ( kb == null ) return(1); return ka.compareTo(kb); } // extract key public String key(String s) { if ( position == 0 ) return s; StringTokenizer st = new StringTokenizer(s, delim); String key = null; int j = st.countTokens(); if ( position <= j ) { for (j=0; j < position; j++) key = st.nextToken(); } return key; } private String delim = "\t \r"; private int position = 0; }