Все решают через множество циклов, переводят строку в массив символов. Я для счетчика каждой буквы в каждой строке взял разницу между исходной строкой и строкой с вырезанной буквой ( через replace()). Код получился очень компактный , но гложут сомнения ,что решение не идеальное. Код привожу только ту часть, которую писал я(остальная часть в задании без изменений ). Буду благодарен за критику. for( Character letter: alphabet){ // беру каждую букву int count=0; //счетчик для букв for(String myString: list){ //для каждой введенной строки String myLetter= Character.toString (letter) ; count += (myString.length() -myString.replace ( myLetter,"").length()); //прибавляю к счетчику разницу между длинами строки и строки с вырезанной буквой } System.out.println(letter+" "+count); }//