Я реализовал логику, чтобы извлечь какое -то значение из строки, используя подобное Regex. < /p>
for(int i = 0; i < fragmentedHeader.length - 1; i++) {
if(fragmentedHeader[i + 1].contains("ads_management")) {
Pattern pattern = Pattern.compile("[0-9]{15}");
Matcher matcher = pattern.matcher(fragmentedHeader);
while (matcher.find()) {
catalogIds.add(matcher.group());
}
}
}
< /code>
это работает, как и ожидалось. Теперь мне нужно реализовать эту логику, используя Java Streams, чтобы сделать ее более читабельной. Я просто хотел сделать ее более читабельным и простым в глазах. Я реализовал это, но это не работает никаких предложений. < /P>
Pattern pattern = Pattern.compile("[0-9]{15}");
catalogIds = IntStream.range(0, fragmentedHeader.length - 1)
.filter(index -> fragmentedHeader[index+1].contains("ads_management") && pattern.matcher(fragmentedHeader[index]).find())
.mapToObj(index -> fragmentedHeader[index])
.collect(Collectors.toList());
catalogIds = catalogIds.stream()
.map(header -> pattern.matcher(header).group())
.collect(Collectors.toList());
< /code>
Ошибка, которую я получаю, не найдена. Но есть ли способ снабжать сочетание на следующий поток < /p>
.filter(index -> fragmentedHeader[index+1].contains("ads_management") && pattern.matcher(fragmentedHeader[index]).find())
.mapToObj(index-> pattern.matcher(fragmentedHeader[index]).group())
Я реализовал логику, чтобы извлечь какое -то значение из строки, используя подобное Regex. < /p> for(int i = 0; i < fragmentedHeader.length - 1; i++) { if(fragmentedHeader[i + 1].contains("ads_management")) { Pattern pattern = Pattern.compile("[0-9]{15}"); Matcher matcher = pattern.matcher(fragmentedHeader[i]); while (matcher.find()) { catalogIds.add(matcher.group()); } } } < /code> это работает, как и ожидалось. Теперь мне нужно реализовать эту логику, используя Java Streams, чтобы сделать ее более читабельной. Я просто хотел сделать ее более читабельным и простым в глазах. Я реализовал это, но это не работает никаких предложений. < /P> Pattern pattern = Pattern.compile("[0-9]{15}"); catalogIds = IntStream.range(0, fragmentedHeader.length - 1) .filter(index -> fragmentedHeader[index+1].contains("ads_management") && pattern.matcher(fragmentedHeader[index]).find()) .mapToObj(index -> fragmentedHeader[index]) .collect(Collectors.toList());
catalogIds = catalogIds.stream() .map(header -> pattern.matcher(header).group()) .collect(Collectors.toList()); < /code> Ошибка, которую я получаю, не найдена. Но есть ли способ снабжать сочетание на следующий поток < /p> .filter(index -> fragmentedHeader[index+1].contains("ads_management") && pattern.matcher(fragmentedHeader[index]).find()) .mapToObj(index-> pattern.matcher(fragmentedHeader[index]).group())
Я реализовал логику, чтобы извлечь какое -то значение из строки, используя подобное Regex.
for(int i = 0; i
это работает, как и ожидалось. Теперь мне нужно реализовать эту логику, используя Java Streams, чтобы сделать ее более читабельной. Я...
Я новичок в кодировании Java и использовании сопоставления шаблонов. Я читаю эту строку из файла. Таким образом, это даст ошибку компиляции. У меня есть строка следующим образом: