获取以列表

时间:2015-06-22 09:24:23

标签: java android list indexof

我有一个列表,我想得到以特定字母开头的字符串的位置。 我正在尝试此代码,但它无法正常工作。

List<String> sp = Arrays.asList(splited);
int i2 = sp.indexOf("^w.*$"); 

2 个答案:

答案 0 :(得分:1)

indexOf不接受正则表达式,您应该迭代列表并使用MatcherPattern来实现:

Pattern pattern = Pattern.compile("^w.*$");
Matcher matcher = pattern.matcher(str);

while (matcher.find()) {
    System.out.print(matcher.start());
}

也许我误解了你的问题。如果你想在以&#34; w&#34;开头的第一个字符串的列表中找到索引,那么我的答案是无关紧要的。您应该遍历列表,检查字符串startsWith是否为该字符串,然后返回其索引。

答案 1 :(得分:1)

indexOf方法不接受正则表达式模式。相反,你可以这样做一个方法:

public static int indexOfPattern(List<String> list, String regex) {
    Pattern pattern = Pattern.compile(regex);
    for (int i = 0; i < list.size(); i++) {
        String s = list.get(i);
        if (s != null && pattern.matcher(s).matches()) {
            return i;
        }
    }
    return -1;
}

然后你就可以写:

int i2 = indexOfPattern(sp, "^w.*$");