Задача 1
str = numLowerCase(str);
У вас есть метод, возвращающий целочисленное значение, и вы пытаетесь установить строку в это целочисленное значение, что недопустимо в Java, хотяможет показаться простым преобразованием.
Возможные решения
str = Integer.toString(numLowerCase(str));
Преобразует целое число в строку.
str = String.valueOf(numLowerCase(str));
Возвращает строковое значение целочисленного ввода.(В основном идентично методу 1)
str = "" + numLowerCase(str);
Допускается объединение целого числа в строку, поэтому вы можете просто добавить целое число в пустую строку.
Задача 2
System.out.print("Please enter a number:");
int number = s.nextInt();
number = sumDigits(number);
System.out.println("The sum of all digits is: " + number);
System.out.print("Please enter a Word: ");
String str = s.nextLine();
(str) = numLowerCase(str);
В этом блоке кода вы используете scanner :: nextInt, который заставляет вас вводить число, а затем нажимает ввод.Scanner :: nextInt анализирует только целое число, которое вы ввели, и возвращает его, поэтому в буфере ввода все еще есть символ newLine.Когда вы вызываете сканер второй раз для scanner :: nextLine, он использует тот символ newLine, который уже находится в буфере, и не позволяет вам вводить новые входные данные.Чтобы это исправить, вам нужно добавить строку с scanner.next();
после вашего scanner.nextInt (), чтобы он позволял вам вводить второй вход и в основном отбрасывать символ newLine.