You want to write your own Comparator for type String, for example
Comparator<String> secondLetterComparator = new Comparator<String>() { @Override public int compare(String a, String b) { return Character.compare(a.charAt(1), b.charAt(1)); } }; String[] wordList = { "apple", "orange", "banana" }; Arrays.sort(wordList, secondLetterComparator); System.out.println(Arrays.asList(wordList));
displays
[banana, apple, orange]
If Character.compare(char, char) not available because you are not yet in Java 7, use this line in compareTo() instead - it is less expressive, but it has the same effect:
return a.charAt(1) - b.charAt(1);
Note that no code protects strings with null or less than 2 characters.
source share