The class Selenium Select has 3 methods of different option selection:
Now,
Using Java 8 Stream/Lambda:
protected void selectOptionByPartText(WebElement elementAttr, String partialText) {
Select select = new Select(elementAttr);
select.getOptions().parallelStream().filter(option -> option.getAttribute("textContent").toLowerCase().contains(partialText.toLowerCase()))
.findFirst().ifPresent(option -> select.selectByVisibleText(option.getAttribute("textContent")));
}