Ich habe eine ArrayList<String>
, die ich durchlaufen, um den richtigen Index für einen String zu finden. Grundsätzlich sollte das Programm bei einem String die Liste durchsuchen und den Index finden, in dem das ganze Wort übereinstimmt. Zum Beispiel:Java Spiel ganze Wort in String
ArrayList<String> foo = new ArrayList<String>();
foo.add("AAAB_11232016.txt");
foo.add("BBB_12252016.txt");
foo.add("AAA_09212017.txt");
Also, wenn ich den String AAA
, gebe ich soll 2
(die letzten) zurück Index. Daher kann ich die Methode nicht verwenden, da dies den Index 0
zurückgibt.
habe ich versucht, mit diesem Code:
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;
}
}
Leider ist dieser Code nie erreicht die if
Anweisung innerhalb der Schleife. Ich bin mir nicht sicher, was ich falsch mache.
Hinweis: Dies sollte auch funktionieren, wenn ich nach AAA_0921
, den vollständigen Namen AAA_09212017.txt
oder einen Teil der Zeichenfolge, die es eindeutig ist suchen.
'Siehe _' ein Wort betrachtet wird character..so es wird nicht als Wortgrenze handeln .. – rock321987
Ooh, ich das nicht wusste. Ich werde in einen anderen Ausdruck schauen. – syy
Meinst du nicht 'Rückkehr i;'? – 4castle