please can anybody help me to overcome this.problem. Problem statement is :
I wrote some code for displaying languages of user selection from web page due to some check box's.Suppose user select two check box's for German and Urdu then I need to show on web page German,Urdu.Then after user again select another language option like Arabic then I need to show on web page like Arabic,German,Urdu.
Thanks advanced.
knownLanguages ="German,Urdu,Arabic";
String userLanguages[] = knownLanguages.split(",");
for (int i = 0; i < userLanguages.length; i++) {
if (i == 0)
knownLanguages1 += userLanguages[i];
else
knownLanguages1 += " , " + userLanguages[i];
}
List<String> list = new ArrayList<String>(Arrays.asList(knownLanguages1.split(" , ")));
Collections.sort(list, ALPHABETICAL_ORDER);
return knownLanguages1;
}
private static Comparator<String> ALPHABETICAL_ORDER = new Comparator<String>() {
public int compare(String str1, String str2) {
int res = String.CASE_INSENSITIVE_ORDER.compare(str1, str2);
if (res == 0) {
res = str1.compareTo(str2);
}
return res;
}
};
But this code don't give desired output.Please help me.
You don't need a custom comparator since all you're doing is alphabetical sorting
.
Following code should work for you:
String knownLanguages ="German,Urdu,Arabic";
// get a list of languages from above string using String#split
List<String> langList = Arrays.asList(knownLanguages.split(","));
// sort the resulting list
Collections.sort(langList);
// print it
System.out.println(langList);
// OUTPUT: [Arabic, German, Urdu]