Reputation: 1109
I have a List named path I'm currently sorting my strings with the following code
java.util.Collections.sort(path);
That is working fine it sorts my list however it treats the cases of the first letter differently that is it sorts the list with upper-case letters and then sorts the list with lower-case letters after so if I had the following cat dog Bird Zebra it would sort it like
Bird
Zebra
dog
cat
so how do I ignore case so that dog and cat would come before Zebra but after Bird? Thank you for any help
Upvotes: 2
Views: 2661
Reputation: 284
Collections.sort(path,new Comparator<String>(){
public int compare(String strA, String strB) {
return strA.compareToIgnoreCase(strB);
}
});
Upvotes: 3
Reputation: 5191
Use the built-in String comparator String.CASE_INSENSITIVE_ORDER
java.util.Collections.sort(path, String.CASE_INSENSITIVE_ORDER);
Upvotes: 11
Reputation: 29976
Create a custom comparator class:
import java.util.Comparator;
class IgnoreCaseComparator implements Comparator<String> {
public int compare(String strA, String strB) {
return strA.compareToIgnoreCase(strB);
}
}
Then on your sort:
IgnoreCaseComparator icc = new IgnoreCaseComparator();
java.util.Collections.sort(path,icc);
Upvotes: 3