Mirando hacia atrás a la pregunta original, necesitamos encontrar algunas palabras clave en una oración dada, contar el número de ocurrencias y saber algo sobre dónde. No entiendo muy bien qué significa "dónde" (¿es un índice en la oración?), Así que pasaré ese ... Todavía estoy aprendiendo Java, un paso a la vez, así que veré a ese a su debido tiempo :-)
Debe tenerse en cuenta que las oraciones comunes (como la de la pregunta original) pueden tener palabras clave repetidas, por lo tanto la búsqueda no puede simplemente preguntar si una palabra clave determinada "existe o no" y cuente como 1 si existe. Puede haber más de uno de lo mismo. Por ejemplo:
// Base sentence (added punctuation, to make it more interesting):
String sentence = "Say that 123 of us will come by and meet you, "
+ "say, at the woods of 123woods.";
// Split it (punctuation taken in consideration, as well):
java.util.List<String> strings =
java.util.Arrays.asList(sentence.split(" |,|\\."));
// My keywords:
java.util.ArrayList<String> keywords = new java.util.ArrayList<>();
keywords.add("123woods");
keywords.add("come");
keywords.add("you");
keywords.add("say");
Por mirarlo, el resultado esperado sería 5 para "decir" + "ven" + "usted" + "di" + "123woods", contando "decir" dos veces si vamos minúsculas Si no lo hacemos, entonces el conteo debe ser 4, "Say" es excluido y "say" incluido. Multa. Mi sugerencia es:
// Set... ready...?
int counter = 0;
// Go!
for(String s : strings)
{
// Asking if the sentence exists in the keywords, not the other
// around, to find repeated keywords in the sentence.
Boolean found = keywords.contains(s.toLowerCase());
if(found)
{
counter ++;
System.out.println("Found: " + s);
}
}
// Statistics:
if (counter > 0)
{
System.out.println("In sentence: " + sentence + "\n"
+ "Count: " + counter);
}
y los resultados son:
Encontrado: Di
Encontrado: llegado
Encontrado: que
Encontrado: decir
encontrados: 123woods
En la oración: SAY que 123 de nosotros vendremos y te encontraremos, digamos, en el bosque de 123woods.
Contador de visitas: 5
¿Estás seguro de que la lógica no es defectuosa? Qué sucede si tiene palabras clave - palabras123 y 123 palabras. ¿Entonces en el texto palabras123 palabras que son las coincidencias? –
Ninguno. Solo necesito coincidencias exactas de palabras. –