Тестирование префиксов с разными регистрами символов
На предыдущем этапе вы успешно использовали метод 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())
. Мы не будем реализовывать это здесь, но это полезный прием, который стоит запомнить.