Я собираюсь предложить решение, которое исправит вашу реализацию, потому что я думаю, что это может помочь вам понять несколько концепций. Тем не менее, я бы порекомендовал, как только вы все заработаете, вернитесь, прочитайте об интерфейсе Java List и переписайте свой код. Списки - намного более чистый способ сохранения последовательностей, которые могут увеличиваться или уменьшаться в длине и значительно уменьшат сложность вашего кода.
Вы должны начать с перемещения объявлений букв и массивов из цикла while. Переменные внутри блока в Java ограничены его границами. Другими словами, ни один оператор вне цикла while не может видеть ни один массив. У этого есть побочный эффект создания нового массива для каждой строки, которую вы анализируете с помощью сканера.
int[] letter = new int[26];
int[] sumbol = new int[26];
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] lst = line.split(" ");
Далее вам нужно знать, куда поместить текущий символ / букву в массив, индекс. Таким образом, вы захотите сохранить количество обработанных вами строк / символов.
int[] letter = new int[26];
int[] sumbol = new int[26];
int numberOfSymbolsProcessed = 0;
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] lst = line.split(" ");
Теперь у вас есть два массива и индекс в каждом, добавьте символ и букву в массив следующим образом ...
int[] letter = new int[26];
int[] sumbol = new int[26];
int numberOfSymbolsProcessed = 0;
while (sc.hasNextLine()) {
String line = sc.nextLine();
String[] lst = line.split(" ");
letter[numberOfSymbolsProcessed] = lst[0];
sumbol[numberOfSymbolsProcessed] = lst[1];
numberOfSymbolsProcessed = numberOfSymbolsProcessed + 1;