我有一個ArrayList<String>
,我反覆查找給定String的正確索引。基本上,給定一個字符串,程序應該搜索整個單詞並找到整個單詞匹配的索引。例如:Java匹配字符串中的整個單詞
ArrayList<String> foo = new ArrayList<String>();
foo.add("AAAB_11232016.txt");
foo.add("BBB_12252016.txt");
foo.add("AAA_09212017.txt");
所以,如果我給字符串AAA
,我該回去指數2
(最後一個)。所以我不能使用方法,因爲這會讓我回到索引0
。
我試着用這個代碼:
String str = "AAA";
String pattern = "\\b" + str + "\\b";
Pattern p = Pattern.compile(pattern);
for(int i = 0; i < foo.size(); i++) {
// Check each entry of list to find the correct value
Matcher match = p.matcher(foo.get(i));
if(match.find() == true) {
return i;
}
}
不幸的是,這個代碼永遠不會達到循環內的if
聲明。我不確定我做錯了什麼。
注意:如果我搜索的是AAA_0921
,全名是AAA_09212017.txt
,或者是它唯一的字符串的任何部分,這也應該有效。
'_'被認爲是一個字character..so它不會爲字邊界行動.. – rock321987
哦,我不知道。我會研究另一種表達方式。 – syy
難道你不是指'回報我;'? – 4castle