Как проверить, является ли символ заглавной буквой в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как проверить, является ли символ заглавной буквой на Java. Мы рассмотрим метод Character.isUpperCase(), который представляет собой удобный инструмент, предоставленный классом Character для этой цели.

С помощью практических примеров вы увидите, как использовать метод Character.isUpperCase() с различными символами, включая заглавные, строчные и не-буквенные символы, чтобы понять его поведение и эффективно определять, является ли заданный символ заглавной буквой в своих Java-программах.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java/BasicSyntaxGroup -.-> java/data_types("Data Types") java/BasicSyntaxGroup -.-> java/booleans("Booleans") java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/BasicSyntaxGroup -.-> java/for_loop("For Loop") java/StringManipulationGroup -.-> java/strings("Strings") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/data_types -.-> lab-559938{{"Как проверить, является ли символ заглавной буквой в Java"}} java/booleans -.-> lab-559938{{"Как проверить, является ли символ заглавной буквой в Java"}} java/if_else -.-> lab-559938{{"Как проверить, является ли символ заглавной буквой в Java"}} java/for_loop -.-> lab-559938{{"Как проверить, является ли символ заглавной буквой в Java"}} java/strings -.-> lab-559938{{"Как проверить, является ли символ заглавной буквой в Java"}} java/string_methods -.-> lab-559938{{"Как проверить, является ли символ заглавной буквой в Java"}} end

Использование метода Character.isUpperCase()

На этом этапе мы рассмотрим, как определить, является ли символ заглавной буквой на Java с использованием метода Character.isUpperCase(). Этот метод является частью класса Character, который предоставляет полезные методы для работы с отдельными символами.

Метод Character.isUpperCase() является статическим методом, что означает, что вы можете вызывать его непосредственно на классе Character без необходимости создавать объект этого класса. Он принимает один символ в качестве аргумента и возвращает true, если символ является заглавной буквой, и false в противном случае.

Создадим простую Java-программу, чтобы продемонстрировать, как использовать этот метод.

  1. Откройте файл HelloJava.java в редакторе WebIDE, если он еще не открыт.

  2. Замените существующий код следующим:

    public class HelloJava {
        public static void main(String[] args) {
            char char1 = 'A';
            char char2 = 'b';
            char char3 = '7';
    
            boolean isUpper1 = Character.isUpperCase(char1);
            boolean isUpper2 = Character.isUpperCase(char2);
            boolean isUpper3 = Character.isUpperCase(char3);
    
            System.out.println("Is '" + char1 + "' uppercase? " + isUpper1);
            System.out.println("Is '" + char2 + "' uppercase? " + isUpper2);
            System.out.println("Is '" + char3 + "' uppercase? " + isUpper3);
        }
    }

    В этом коде:

    • Мы объявляем три переменные типа char: char1, char2 и char3 и присваиваем им разные символы.
    • Мы используем метод Character.isUpperCase() для проверки, является ли каждый символ заглавной буквой, и сохраняем результат в булевых переменных (isUpper1, isUpper2, isUpper3).
    • В конце мы выводим результаты в консоль.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Скомпилируйте программу в терминале:

    javac HelloJava.java
  5. Запустите скомпилированную программу:

    java HelloJava

    Вы должны увидеть вывод, похожий на следующий:

    Is 'A' uppercase? true
    Is 'b' uppercase? false
    Is '7' uppercase? false

Этот вывод подтверждает, что метод Character.isUpperCase() правильно определил, что 'A' - заглавная буква, а 'b' и '7' - не являются заглавными буквами.

Тестирование с символами в разных регистрах

На предыдущем этапе мы использовали метод Character.isUpperCase() с отдельными символами. Теперь давайте посмотрим, как можно применить этот метод к строке, содержащей смесь заглавных и строчных букв. Это поможет нам понять, как пройти по всем символам строки и проверить регистр каждого из них.

Строка в Java представляет собой последовательность символов. Мы можем получить доступ к отдельным символам в строке с помощью метода charAt(), который принимает индекс (позицию) в качестве аргумента. Индекс первого символа начинается с 0.

Давайте модифицируем нашу программу для проверки регистра символов в строке.

  1. Откройте файл HelloJava.java в редакторе WebIDE.

  2. Замените существующий код следующим:

    public class HelloJava {
        public static void main(String[] args) {
            String testString = "Hello Java 123";
    
            System.out.println("Checking characters in the string: \"" + testString + "\"");
    
            for (int i = 0; i < testString.length(); i++) {
                char currentChar = testString.charAt(i);
                boolean isUpper = Character.isUpperCase(currentChar);
                System.out.println("Character '" + currentChar + "' at index " + i + " is uppercase? " + isUpper);
            }
        }
    }

    В этом обновленном коде:

    • Мы определяем переменную типа String с именем testString, которая содержит смесь заглавных и строчных букв, пробелов и цифр.
    • Мы используем цикл for для прохода по каждому символу строки. Цикл выполняется от индекса 0 до (но не включая) длины строки.
    • Внутри цикла метод testString.charAt(i) возвращает символ по текущему индексу i.
    • Затем мы используем метод Character.isUpperCase() для проверки, является ли currentChar заглавной буквой.
    • В конце мы выводим символ, его индекс и результат проверки на заглавность.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Скомпилируйте программу в терминале:

    javac HelloJava.java
  5. Запустите скомпилированную программу:

    java HelloJava

    Вы должны увидеть вывод, похожий на следующий, показывающий результат для каждого символа в строке:

    Checking characters in the string: "Hello Java 123"
    Character 'H' at index 0 is uppercase? true
    Character 'e' at index 1 is uppercase? false
    Character 'l' at index 2 is uppercase? false
    Character 'l' at index 3 is uppercase? false
    Character 'o' at index 4 is uppercase? false
    Character ' ' at index 5 is uppercase? false
    Character 'J' at index 6 is uppercase? true
    Character 'a' at index 7 is uppercase? false
    Character 'v' at index 8 is uppercase? false
    Character 'a' at index 9 is uppercase? false
    Character ' ' at index 10 is uppercase? false
    Character '1' at index 11 is uppercase? false
    Character '2' at index 12 is uppercase? false
    Character '3' at index 13 is uppercase? false

Это демонстрирует, как работает метод Character.isUpperCase() при применении к символам, извлеченным из строки, и правильно определяет 'H' и 'J' как заглавные буквы.

Игнорирование небуквенных символов

На предыдущем этапе мы увидели, что метод Character.isUpperCase() возвращает false для символов, которые не являются буквами, таких как пробелы и цифры. Часто при анализе текста нас интересуют только буквы, и мы хотим игнорировать другие символы.

Класс Character предоставляет еще один полезный метод, Character.isLetter(), который возвращает true, если символ является буквой (как заглавной, так и строчной), и false в противном случае. Мы можем комбинировать методы Character.isLetter() и Character.isUpperCase() для проверки, является ли символ заглавной буквой и при этом игнорировать небуквенные символы.

Давайте модифицируем нашу программу для подсчета количества заглавных букв в строке, игнорируя пробелы, цифры и другие небуквенные символы.

  1. Откройте файл HelloJava.java в редакторе WebIDE.

  2. Замените существующий код следующим:

    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 и выводим сообщение о том, что была найдена заглавная буква.
    • После завершения цикла мы выводим общее количество найденных заглавных букв.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Скомпилируйте программу в терминале:

    javac HelloJava.java
  5. Запустите скомпилированную программу:

    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'), игнорируя строчные буквы, пробелы и цифры.

Резюме

В этом практическом занятии (лабораторной работе) мы научились проверять, является ли символ заглавной буквой в Java, используя статический метод Character.isUpperCase(). Этот метод принимает один символ в качестве входных данных и возвращает логическое значение, показывающее, является ли символ заглавной буквой. Мы продемонстрировали его использование с помощью простой Java-программы, проверив его на заглавных, строчных и небуквенных символах, чтобы наблюдать возвращаемые логические результаты.