Введение
В этом практическом занятии (лабораторной работе) вы научитесь проверять, начинается ли строка с определенного префикса на Java с использованием метода startsWith(). Это практическое упражнение поможет вам применить метод startsWith(), проверить его поведение в различных случаях и понять, как он обрабатывает нулевые и пустые префиксы. По завершении этого практического занятия вы будете свободно использовать этот фундаментальный метод манипулирования строками.
Применить метод startsWith() для проверки префикса
На этом этапе вы научитесь использовать метод startsWith() в Java для проверки, начинается ли строка с определенного префикса. Это распространенная операция, когда вам нужно обрабатывать текст в зависимости от его начала.
Метод startsWith() является частью класса String в Java. Он принимает аргумент типа String, который представляет префикс, наличие которого вы хотите проверить. Метод возвращает true, если строка начинается с указанного префикса, и false в противном случае.
Создадим новый Java-файл, чтобы потренироваться в использовании метода startsWith().
Откройте проводник файлов слева в WebIDE.
Щелкните правой кнопкой мыши в каталоге
~/projectи выберите "Новый файл".Назовите новый файл
PrefixChecker.java.Откройте файл
PrefixChecker.javaв редакторе и вставьте следующий код:public class PrefixChecker { public static void main(String[] args) { String text = "Hello, Java!"; String prefix = "Hello"; boolean startsWithPrefix = text.startsWith(prefix); System.out.println("Does the text start with '" + prefix + "'? " + startsWithPrefix); } }В этом коде:
- Мы объявляем переменную
textтипаStringи инициализируем ее значением "Hello, Java!". - Мы объявляем еще одну переменную
prefixтипаStringи инициализируем ее значением "Hello". - Мы вызываем метод
startsWith()для строкиtext, передавая в качестве аргумента переменнуюprefix. Результат (trueилиfalse) сохраняется в переменнойstartsWithPrefixтипаboolean. - Наконец, мы выводим результат в консоль.
- Мы объявляем переменную
Сохраните файл (Ctrl+S или Cmd+S).
Теперь скомпилируем и запустим эту программу. Откройте терминал внизу WebIDE. Убедитесь, что вы находитесь в каталоге
~/project.Скомпилируйте Java-файл с помощью команды
javac:javac PrefixChecker.javaЕсли ошибок нет, эта команда создаст файл
PrefixChecker.classв каталоге~/project.Запустите скомпилированную программу с помощью команды
java:java PrefixCheckerВы должны увидеть следующий вывод:
Does the text start with 'Hello'? true
Этот вывод подтверждает, что строка "Hello, Java!" действительно начинается с префикса "Hello".
Тестирование префиксов в различных регистрах
На предыдущем этапе вы успешно использовали метод startsWith() для проверки префикса. Теперь давайте рассмотрим, как метод startsWith() обрабатывает разные регистры символов (заглавные и строчные буквы).
По умолчанию метод startsWith() чувствителен к регистру символов. Это означает, что "Hello" считается отличным от "hello" или "HELLO". Изменим файл PrefixChecker.java, чтобы увидеть это в действии.
Откройте файл
PrefixChecker.javaв редакторе WebIDE.Измените метод
main, чтобы включить проверки с разными регистрами символов. Замените существующий методmainследующим кодом:public class PrefixChecker { public static void main(String[] args) { String text = "Hello, Java!"; String prefix1 = "Hello"; String prefix2 = "hello"; String prefix3 = "HELLO"; boolean startsWithPrefix1 = text.startsWith(prefix1); boolean startsWithPrefix2 = text.startsWith(prefix2); boolean startsWithPrefix3 = text.startsWith(prefix3); System.out.println("Does the text start with '" + prefix1 + "'? " + startsWithPrefix1); System.out.println("Does the text start with '" + prefix2 + "'? " + startsWithPrefix2); System.out.println("Does the text start with '" + prefix3 + "'? " + startsWithPrefix3); } }В этом обновленном коде мы проверяем, начинается ли строка
textс "Hello", "hello" и "HELLO".Сохраните файл (Ctrl+S или Cmd+S).
Откройте терминал и убедитесь, что вы находитесь в каталоге
~/project.Скомпилируйте измененный Java-файл:
javac PrefixChecker.javaЗапустите скомпилированную программу:
java PrefixCheckerВы должны увидеть следующий вывод:
Does the text start with 'Hello'? true Does the text start with 'hello'? false Does the text start with 'HELLO'? false
Этот вывод четко показывает, что метод startsWith() вернул true только для префикса "Hello" (совпадающего по регистру с исходной строкой) и false для "hello" и "HELLO". Это демонстрирует, что метод startsWith() чувствителен к регистру символов.
Если вам нужно выполнить проверку префикса без учета регистра символов, обычно вы преобразуете как исходную строку, так и префикс в один и тот же регистр (либо в нижний, либо в верхний) перед использованием метода startsWith(). Например, вы можете использовать text.toLowerCase().startsWith(prefix.toLowerCase()). Мы не будем реализовывать это здесь, но это полезный прием, который стоит запомнить.
Проверка на нулевые и пустые префиксы
На этом этапе мы исследуем, как метод startsWith() ведет себя, когда префикс равен null или является пустой строкой (""). Понимание этих крайних случаев важно для написания надежного кода.
Откройте файл
PrefixChecker.javaв редакторе WebIDE.Измените метод
main, чтобы проверить работу с префиксомnullи пустой строкой в качестве префикса. Замените существующий методmainследующим кодом:public class PrefixChecker { public static void main(String[] args) { String text = "Hello, Java!"; String prefixNull = null; String prefixEmpty = ""; // Check with a null prefix try { boolean startsWithPrefixNull = text.startsWith(prefixNull); System.out.println("Does the text start with null? " + startsWithPrefixNull); } catch (NullPointerException e) { System.out.println("Checking with null prefix resulted in: " + e); } // Check with an empty prefix boolean startsWithPrefixEmpty = text.startsWith(prefixEmpty); System.out.println("Does the text start with an empty string? " + startsWithPrefixEmpty); } }В этом обновленном коде:
- Мы объявляем переменную
prefixNullи присваиваем ей значениеnull. - Мы объявляем переменную
prefixEmptyи присваиваем ей пустую строку"". - Мы используем блок
try-catchпри проверке сprefixNull. Это связано с тем, что попытка вызвать метод для объекта, равногоnull, в Java приводит кNullPointerException. Мы ловим это исключение, чтобы увидеть, что произойдет. - Мы проверяем с пустой строкой в качестве префикса
prefixEmpty.
- Мы объявляем переменную
Сохраните файл (Ctrl+S или Cmd+S).
Откройте терминал и убедитесь, что вы находитесь в каталоге
~/project.Скомпилируйте измененный Java-файл:
javac PrefixChecker.javaЗапустите скомпилированную программу:
java PrefixCheckerВы должны увидеть следующий вывод:
Checking with null prefix resulted in: java.lang.NullPointerException Does the text start with an empty string? true
Этот вывод демонстрирует два важных момента:
- Передача
nullв качестве префикса методуstartsWith()приводит кNullPointerException. Вот почему важно обрабатывать возможные значенияnullперед вызовом методов на них. - Передача пустой строки (
"") в качестве префикса методуstartsWith()возвращаетtrue. Это потому, что любую строку можно считать начинающейся с пустой строки.
Понимание того, как метод startsWith() обрабатывает null и пустые строки, важно для предотвращения ошибок и написания корректной логики в ваших Java-программах.
Резюме
В этом практическом занятии (лабораторной работе) вы научились использовать метод startsWith() в Java для проверки, начинается ли строка с определенного префикса. Вы отработали применение этого метода, создав простую Java-программу, скомпилировав ее и запустив, чтобы увидеть результат. Этот фундаментальный навык важен для различных задач по обработке строк в программировании на Java.



