簡體   English   中英

從列表中獲取以字母開頭的元素

[英]Get element starting with letter from List

我有一個列表,我想獲取以特定字母開頭的字符串的位置。 我正在嘗試此代碼,但無法正常工作。

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

indexOf不接受正則表達式,您應該在列表上進行迭代並使用MatcherPattern來實現:

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

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

也許我誤解了你的問題。 如果要在以“ w”開頭的第一個字符串的列表中找到索引,那么我的答案是無關緊要的。 你應該重復的名單上,檢查如果字符串startsWith該字符串,然后返回它的索引。

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.*$");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM