Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как проверить начало или конец строки

Короткий ответ

Используйте startsWith() и endsWith():

void main() {
    String file = "report.pdf";
 
    IO.println(file.startsWith("rep"));
    IO.println(file.endsWith(".pdf"));
}

Результат:

true
true

Без учёта регистра

У этих методов нет варианта без регистра, поэтому сначала приведите строку к нижнему регистру:

void main() {
    String file = "PHOTO.JPG";
    IO.println(file.toLowerCase(Locale.ROOT).endsWith(".jpg"));
}

Результат:

true

Несколько вариантов

Проверить сразу несколько окончаний удобно через поток:

void main() {
    var images = List.of(".png", ".jpg", ".gif");
    String file = "cat.gif";
 
    IO.println(images.stream().anyMatch(file::endsWith));
}

Результат:

true

С позиции

startsWith() принимает второй аргумент — с какого символа начинать проверку:

void main() {
    IO.println("+7-900-123".startsWith("900", 3));
}

Результат:

true

Частая ошибка

Проверять расширение файла через contains(). Строка "pdf-viewer.exe" содержит pdf, но это не PDF:

void main() {
    String file = "pdf-viewer.exe";
 
    IO.println(file.contains("pdf"));
    IO.println(file.endsWith(".pdf"));
}

Результат:

true
false

Функции из этого ответа

  • String.startsWith() — Проверяет, начинается ли строка с указанного префикса.
  • String.endsWith() — Проверяет, заканчивается ли строка указанным суффиксом.
  • String.toLowerCase() — Возвращает копию строки, где все буквы строчные.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.