在包含字符串的List中查找索引

时间:2014-08-20 21:18:28

标签: java string list

我有一个包含许多网址的列表。其中许多URL包含字符串" recap"。我需要获取包含该特定字符串的每个索引。我怎么能这样做呢?

4 个答案:

答案 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);
    }
}