Игнорирование небуквенных символов
На предыдущем этапе мы увидели, что метод Character.isUpperCase()
возвращает false
для символов, которые не являются буквами, таких как пробелы и цифры. Часто при анализе текста нас интересуют только буквы, и мы хотим игнорировать другие символы.
Класс Character
предоставляет еще один полезный метод, Character.isLetter()
, который возвращает true
, если символ является буквой (как заглавной, так и строчной), и false
в противном случае. Мы можем комбинировать методы Character.isLetter()
и Character.isUpperCase()
для проверки, является ли символ заглавной буквой и при этом игнорировать небуквенные символы.
Давайте модифицируем нашу программу для подсчета количества заглавных букв в строке, игнорируя пробелы, цифры и другие небуквенные символы.
-
Откройте файл HelloJava.java
в редакторе WebIDE.
-
Замените существующий код следующим:
public class HelloJava {
public static void main(String[] args) {
String testString = "Hello Java 123";
int uppercaseCount = 0;
System.out.println("Counting uppercase letters in the string: \"" + testString + "\"");
for (int i = 0; i < testString.length(); i++) {
char currentChar = testString.charAt(i);
// Check if the character is a letter AND if it is uppercase
if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar)) {
uppercaseCount++;
System.out.println("Found uppercase letter: '" + currentChar + "' at index " + i);
}
}
System.out.println("Total uppercase letters found: " + uppercaseCount);
}
}
В этом коде:
- Мы инициализируем целочисленную переменную
uppercaseCount
со значением 0.
- Внутри цикла мы добавляем условие
if
: if (Character.isLetter(currentChar) && Character.isUpperCase(currentChar))
. Оператор &&
означает "и". Это условие истинно только в том случае, если и Character.isLetter(currentChar)
возвращает true
, и Character.isUpperCase(currentChar)
возвращает true
.
- Если условие истинно, мы увеличиваем значение
uppercaseCount
и выводим сообщение о том, что была найдена заглавная буква.
- После завершения цикла мы выводим общее количество найденных заглавных букв.
-
Сохраните файл (Ctrl+S или Cmd+S).
-
Скомпилируйте программу в терминале:
javac HelloJava.java
-
Запустите скомпилированную программу:
java HelloJava
Вы должны увидеть вывод, похожий на следующий:
Counting uppercase letters in the string: "Hello Java 123"
Found uppercase letter: 'H' at index 0
Found uppercase letter: 'J' at index 6
Total uppercase letters found: 2
Этот вывод показывает, что наша программа правильно идентифицировала и посчитала только заглавные буквы ('H' и 'J'), игнорируя строчные буквы, пробелы и цифры.