Метод startsWith
Метод startsWith класса Path проверяет,
начинается ли текущий путь с указанного пути.
В первый параметр мы передаем путь (или строку),
который нужно проверить в качестве начала.
Метод возвращает true, если текущий путь
начинается с переданного пути, и false в противном случае.
Сравнение происходит покомпонентно, то есть каждый
элемент пути должен совпадать.
Метод имеет две перегрузки: одна принимает объект
типа Path, другая - строку String.
Синтаксис
path.startsWith(otherPath)
path.startsWith(otherPathAsString)
Пример
Давайте проверим, начинается ли путь
/home/user/docs/file.txt с пути /home/user:
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main
{
public static void main(String[] args)
{
Path path = Paths.get("/home/user/docs/file.txt");
Path prefix = Paths.get("/home/user");
System.out.println(path.startsWith(prefix));
}
}
Результат выполнения кода:
true
Пример
Давайте проверим случай, когда путь не начинается с указанного префикса:
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main
{
public static void main(String[] args)
{
Path path = Paths.get("/home/user/docs/file.txt");
Path prefix = Paths.get("/home/other");
System.out.println(path.startsWith(prefix));
}
}
Результат выполнения кода:
false
Пример
Давайте проверим работу метода с перегрузкой, принимающей строку:
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main
{
public static void main(String[] args)
{
Path path = Paths.get("/home/user/docs/file.txt");
System.out.println(path.startsWith("/home/user"));
System.out.println(path.startsWith("/home/other"));
}
}
Результат выполнения кода:
true
false
Пример
Давайте проверим, что сравнение происходит покомпонентно, а не посимвольно:
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main
{
public static void main(String[] args)
{
Path path = Paths.get("/home/user/docs/file.txt");
Path prefix = Paths.get("/home/us");
System.out.println(path.startsWith(prefix));
}
}
Результат выполнения кода:
false