Добавить substring в метод
Подскажите, как вложить эту логику:
public static void main(String[] args)
{
String str = "[Blouse\n" + "S, Black]";
String resultStr = str.substring(str.indexOf(str) + 1, str.indexOf("\n"));
System.out.println(resultStr);
}
В этот метод:
public List<String> getSortingListItemName (){
List<WebElement> listItemName = driver.findElements(ITEM_ON_WISHLIST_LINK);
List<String> allListItemName = listItemName.stream().map(WebElement::getText).collect(Collectors.toList());
return allListItemName;
}
Мне нужно ,применить "алгоритм" к каждой строке списка. Что бы бралось только одно название товара и ни чего лишнего
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Если у вас известен формат каждой строки в списке "[<ItemName>\nLine2]" и нужно взять часть строки между символами [ и \n, можно определить где-нибудь отдельный утилитный метод:
// утилитный класс MyUtil
public static String getItemName(String item) {
int bracketPos = item.indexOf('[') + 1;
int newLinePos = item.indexOf('\n', bracketPos);
if (newLinePos < 0) { // если перевод строки не найден??
// обработка аварийного случая
}
return item.substring(bracketPos, newLinePos);
}
И затем просто подставляете ссылку на данный метод в дополнительную операцию .map в методе getSortingListItemName, который можно/нужно переписать, чтобы убрать лишние промежуточные переменные:
public List<String> getSortingListItemName () {
return driver.findElements(ITEM_ON_WISHLIST_LINK) // List<WebElement>
.stream() // Stream<WebElement>
.map(WebElement::getText) // Stream<String>
.map(MyUtil::getItemName) // Stream<String>
.collect(Collectors.toList()); // List<String>
}