Как проверить, имеет ли строка определенную длину в Java

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

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

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, имеет ли строка определенную длину на Java. Мы рассмотрим основные шаги, начиная с использования метода length() для получения длины строки. Затем вы узнаете, как сравнить эту длину с ожидаемым значением и, что особенно важно, как обрабатывать возможные нулевые (null) строки, чтобы избежать ошибок. К концу этого практического занятия вы будете хорошо понимать, как выполнять надежные проверки длины строк в своих Java-приложениях.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/if_else("If...Else") java/StringManipulationGroup -.-> java/strings("Strings") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/if_else -.-> lab-559984{{"Как проверить, имеет ли строка определенную длину в Java"}} java/strings -.-> lab-559984{{"Как проверить, имеет ли строка определенную длину в Java"}} java/string_methods -.-> lab-559984{{"Как проверить, имеет ли строка определенную длину в Java"}} end

Использование метода length() для получения длины строки

На этом этапе мы научимся определять длину строки на Java с помощью метода length(). Метод length() является встроенной функцией в Java, которая возвращает количество символов в строке.

  1. Сначала создадим новый Java-файл с именем StringLength.java в директории ~/project. Для этого можно щелкнуть правой кнопкой мыши в проводнике файлов слева и выбрать "New File", а затем ввести StringLength.java.

  2. Откройте файл StringLength.java в редакторе и добавьте следующий код:

    public class StringLength {
        public static void main(String[] args) {
            String greeting = "Hello, LabEx!";
            int length = greeting.length();
            System.out.println("The length of the string is: " + length);
        }
    }

    Рассмотрим новые элементы кода:

    • String greeting = "Hello, LabEx!";: Эта строка объявляет переменную greeting типа String и присваивает ей значение "Hello, LabEx!".
    • int length = greeting.length();: Именно здесь мы используем метод length(). Мы вызываем length() для строки greeting, и он возвращает количество символов (включая пробелы и знаки препинания). Затем это число сохраняется в целочисленной переменной с именем length.
    • System.out.println("The length of the string is: " + length);: Эта строка выводит текст "The length of the string is: ", за которым следует значение, хранящееся в переменной length.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Теперь откройте Терминал внизу WebIDE и убедитесь, что вы находитесь в директории ~/project. Если необходимо, можно использовать команду cd ~/project.

  5. Скомпилируйте Java-программу с помощью команды javac:

    javac StringLength.java

    Если ошибок нет, то вы не должны увидеть никакого вывода.

  6. Запустите скомпилированную Java-программу с помощью команды java:

    java StringLength

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

    The length of the string is: 13

    Этот вывод подтверждает, что метод length() правильно посчитал количество символов в строке "Hello, LabEx!", которое равно 13.

Вы успешно использовали метод length() для определения длины строки на Java!

Сравнение длины строки с ожидаемым значением

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

Мы изменим файл StringLength.java, который мы создали на предыдущем этапе.

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

  2. Измените метод main, чтобы включить сравнение. Замените существующий метод main следующим кодом:

    public class StringLength {
        public static void main(String[] args) {
            String password = "mysecretpassword";
            int minLength = 8; // Minimum required length
    
            int passwordLength = password.length();
    
            System.out.println("Password: " + password);
            System.out.println("Password length: " + passwordLength);
            System.out.println("Minimum required length: " + minLength);
    
            if (passwordLength >= minLength) {
                System.out.println("Password meets the minimum length requirement.");
            } else {
                System.out.println("Password does NOT meet the minimum length requirement.");
            }
        }
    }

    Рассмотрим внесенные изменения:

    • Мы изменили имя переменной строки на password и присвоили ей другое значение.
    • Мы ввели новую целочисленную переменную minLength для хранения минимально требуемой длины.
    • Мы вычисляем passwordLength с помощью метода length(), как и раньше.
    • Мы добавили оператор if. Оператор if проверяет, является ли passwordLength больше или равно minLength.
    • Если условие (passwordLength >= minLength) истинно, выполняется код внутри блока if, выводящее сообщение об успехе.
    • Если условие ложно, выполняется код внутри блока else, выводящее сообщение о неудаче.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Откройте Терминал и убедитесь, что вы находитесь в директории ~/project.

  5. Скомпилируйте измененную Java-программу:

    javac StringLength.java

    Опять же, отсутствие вывода означает успешную компиляцию.

  6. Запустите программу:

    java StringLength

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

    Password: mysecretpassword
    Password length: 16
    Minimum required length: 8
    Password meets the minimum length requirement.

    Попробуйте изменить строку password в коде на что - то короче 8 символов (например, "short"), сохранить файл, перекомпилировать и запустить программу снова, чтобы увидеть выполнение блока else.

Теперь вы научились сравнивать длину строки с определенным значением с помощью оператора if!

Обработка нулевых строк при проверке длины

На предыдущих этапах мы работали с строками, имеющими реальные символьные значения. Однако в программировании переменная строкового типа может иногда иметь специальное значение, называемое null. Значение null означает, что переменная не ссылается на какой - либо объект. Если вы попытаетесь вызвать метод, такой как length(), для строки со значением null, ваша программа завершится аварийно с ошибкой NullPointerException.

На этом этапе мы научимся безопасно обрабатывать строки со значением null перед попыткой получить их длину.

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

  2. Измените метод main, чтобы включить проверку на null. Замените существующий метод main следующим кодом:

    public class StringLength {
        public static void main(String[] args) {
            String potentialString = null; // This string is null
            int minLength = 5; // Minimum required length
    
            System.out.println("String to check: " + potentialString);
            System.out.println("Minimum required length: " + minLength);
    
            if (potentialString != null) {
                int stringLength = potentialString.length();
                System.out.println("String length: " + stringLength);
    
                if (stringLength >= minLength) {
                    System.out.println("String meets the minimum length requirement.");
                } else {
                    System.out.println("String does NOT meet the minimum length requirement.");
                }
            } else {
                System.out.println("Cannot check length: The string is null.");
            }
        }
    }

    Рассмотрим внесенные изменения:

    • Мы изменили имя переменной на potentialString и изначально установили ее значение равным null.
    • Мы добавили внешний оператор if: if (potentialString != null). Этот оператор проверяет, не является ли переменная potentialString равной null.
    • Код для получения длины (potentialString.length()) и последующее сравнение длины теперь находятся внутри этого блока if. Это гарантирует, что метод length() вызывается только в том случае, если строка не равна null.
    • Блок else внешнего оператора if обрабатывает случай, когда строка является null, выводя сообщение о том, что длину нельзя проверить.
  3. Сохраните файл (Ctrl+S или Cmd+S).

  4. Откройте Терминал и убедитесь, что вы находитесь в директории ~/project.

  5. Скомпилируйте измененную Java - программу:

    javac StringLength.java

    Отсутствие вывода означает успешную компиляцию.

  6. Запустите программу:

    java StringLength

    Поскольку potentialString равно null, вы должны увидеть следующий вывод:

    String to check: null
    Minimum required length: 5
    Cannot check length: The string is null.

    Теперь попробуйте изменить значение potentialString на не - нулевую строку, например, "Java", сохранить файл, перекомпилировать и запустить программу снова. Вы должны увидеть, что выполняется проверка длины.

    String potentialString = "Java"; // This string is not null

    После перекомпиляции и запуска:

    String to check: Java
    Minimum required length: 5
    String length: 4
    String does NOT meet the minimum length requirement.

    Это демонстрирует, как безопасно обрабатывать строки со значением null перед попыткой вызвать на них методы, предотвращая аварийное завершение программы.

Резюме

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