#java #string #lowercase
#java #строка #нижний регистр
Вопрос:
Я просматривал форумы и нашел полезный код о том, как подсчитывать строчные буквы во введенной строке. Дело в том, что после тестирования я увидел, что он учитывает только строчные буквы в первом введенном слове. Итак, например, если я наберу: здесь, счетчик скажет, что я ввел 1 строчную букву (что правильно), но если я наберу: вот я, счетчик по-прежнему будет указывать только 1 вместо 4. Это только подсчет строчных букв в первом слове. Как мне заставить его считать строчные буквы во всей моей строке?
Пока что код:
import java.util.Scanner;
public class countingLowerCaseStrings {
public static void main(String args[]){
Scanner scanner = new Scanner(System.in);
System.out.println("Enter your string: ");
String input = scanner.next();
int LowerCaseLetterCounter = 0;
for (char ch : input.toCharArray()) {
if (Character.isLowerCase(ch)) {
LowerCaseLetterCounter ;
}
}
System.out.println ("Number of lower case letters in this string is: "
LowerCaseLetterCounter);
}
}
Огромное спасибо за помощь!
Ответ №1:
scanner.next();
считывает первое доступное слово, а не всю строку.
Поэтому, если вы введете «Вот я», он будет просто читать «Здесь».
Измените его на scanner.nextLine()
:
System.out.println("Enter your string: ");
String input = scanner.nextLine();
ДЕМО — посмотрите на stdin
и stdout
панели.
Комментарии:
1. Я полностью пропустил это! Спасибо, чувак, легко исправить, и я не могу поверить, что я этого не заметил! Ты потрясающий! 😉
Ответ №2:
Что интересно, Java 8 предоставляет довольно упрощенный способ достижения того же результата:
scanner.nextLine().chars().filter(Character::isLowerCase).count()