我有一个包含许多网址的列表。其中许多URL包含字符串" recap"。我需要获取包含该特定字符串的每个索引。我怎么能这样做呢?
答案 0 :(得分:3)
您没有提供任何代码,因此请查看此示例并为您自己重写; - )
import static java.util.stream.Collectors.toList;
// ...
final List<String> urls = Arrays.asList("foorecap", "recapfoo", "bar", "baz");
final List<String> recaps = urls.stream()
.filter(url -> url.contains("recap"))
.collect(toList());
答案 1 :(得分:0)
尝试:
for(String url : urls) {
int index = url.indexOf("recap");
if(index != -1) { // found
System.out.println("index: " + index);
}
}
答案 2 :(得分:0)
你可以使用番石榴:
Iterable<String> passedUrls = Iterables.filter(urls, new Predicate<String>() {
@Override
public boolean apply(String url) {
return url.contains("recap");
}
});
这是我未编译的另一个问题的解决方案的略微修改版本:https://stackoverflow.com/a/8636536/857994,但我认为它应该按原样运行。
答案 3 :(得分:0)
循环非常简单:
List<String> urls = //your list of String URLS
List<Integer> indexes = new ArrayList<>();
for(int i = 0; i < urls.size(); i++) {
if(urls.get(i).contains("recap")) {
indexes.add(i);
}
}