Java - Сортировка массива String по количеству заглавных букв
Есть массив String, нужно отсортировать по возрастанию количества заглавных букв в строках. Как это сделать ? Желательно без компаратора, ибо пока что не понимаю, как им пользоваться.
String [] names = {"DeaaaSaaaAaAAAan", "DeaWeWEaan", "DeaaFDfaaaaaan", "DeWan", "DeaaaaSaan", "DeaSLKDan", "Deaaaaaaaaan", "Deaaaan", "Deaaaaan"};
Ответы (1 шт):
Автор решения: Tiarait
→ Ссылка
Если без компаратора это будет сортировка через циклы. Однако оставлю ссылку на сортировку с Comparator
public static void main(String[] args) {
String [] names = {"DeaaaSaaaAaAAAan", "DeaWeWEaan", "DeaaFDfaaaaaan", "DeWan", "DeaaaaSaan", "DeaSLKDan", "Deaaaaaaaaan", "Deaaaan", "Deaaaaan"};
//сортируем
for (int i = 0; i < names.length; i++) {
String temp = "";
for (int j = i+1; j < names.length; j++) {
//условие сортировки
if(countUpperCase(names[i]) > countUpperCase(names[j])) {
temp = names[i];
names[i] = names[j];
names[j] = temp;
}
}
}
//вывод
System.out.println("now: " + Arrays.toString(names));
}
//получаем кол-во заглавных букв в тексте
private static long countUpperCase(String inputString) {
return inputString.chars().filter((s)->Character.isUpperCase(s)).count();
}
countUpperCase тоже можно сделать через цикл (но зачем)