已知字母序列【d, g, e, c, f, b, o, a】,请实现一个函数针对输入的一组字符串 input[] = {"bed", "dog", "dear", "eye"},按照字母顺序排序并打印。
本例的输出顺序为:dear, dog, eye, bed。
import java.util.Comparator; import java.util.Arrays; import java.util.HashMap; import java.util.Map; public class StringTest implements Comparator<String>{ static char charOrder[] = { 'd', 'g', 'e', 'c', 'f', 'b', 'o', 'a' }; Map<Character, Integer>mpp=new HashMap<Character, Integer>(); public StringTest() { for(int i=0;i<charOrder.length;i++) mpp.put(charOrder[i],i); } public int compare(String s1,String s2) { int len1=s1.length(),len2=s2.length(); int min=len1<len2?len1:len2; int num=0; for(int i=0;i<min;i++) { num=mpp.get(s1.charAt(i))-mpp.get(s2.charAt(i)); if(num!=0) return num; } if(len1!=len2) return len1-len2; return 0; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String[] strArray = new String[] { "bed", "dog", "dear", "eye" }; Arrays.sort(strArray, new StringTest()); for(int i=0;i<strArray.length;i++) System.out.println(strArray[i]); } }