[英]Get element starting with letter from List
我有一個列表,我想獲取以特定字母開頭的字符串的位置。 我正在嘗試此代碼,但無法正常工作。
List<String> sp = Arrays.asList(splited);
int i2 = sp.indexOf("^w.*$");
indexOf
不接受正則表達式,您應該在列表上進行迭代並使用Matcher
和Pattern
來實現:
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.