私はArrayList<String>
を持っています。これは、与えられた文字列の正しいインデックスを見つけるために繰り返します。基本的に、Stringを指定すると、プログラムはリスト全体を検索し、単語全体が一致するインデックスを見つけ出す必要があります。例えば:私は文字列AAA
を与える場合Javaは文字列内の単語全体を一致させます
ArrayList<String> foo = new ArrayList<String>();
foo.add("AAAB_11232016.txt");
foo.add("BBB_12252016.txt");
foo.add("AAA_09212017.txt");
だから、私は、インデックス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
、またはそれに固有の文字列の一部を検索した場合にも有効です。
'_'を参照してくださいがOohの – rock321987
...それcharacter..so単語単語境界として文句を言わない行為とみなされ、私は知りませんでした。私は別の表現を調べます。 – syy
あなたは 'return i;'を意味しませんか? – 4castle