Оглядываясь на исходный вопрос, нам нужно найти несколько заданных ключевых слов в данном предложении, посчитать количество вхождений и кое-что узнать о том, где.Я не совсем понимаю, что означает "где" (это индекс в предложении?), Поэтому я пропущу этот ... Я все еще изучаю Java, один шаг за раз, поэтому я посмотрюк этому в свое время: -)
Следует отметить, что общие предложения (как и в исходном вопросе) могут иметь повторяющиеся ключевые слова, поэтому поиск не может просто спросить, существует ли данное ключевое слово "или нет"и считать его как 1, если он существует.Там может быть более одного того же.Например:
// 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");
Глядя на это, ожидаемый результат будет 5 для "Скажи" + "приходи" + "ты" + "говори" + "123 леса", считая "скажи" дважды, еслимы идем в нижнем регистре.Если мы этого не сделаем, то число должно быть 4, исключая «Скажи» и включая «Скажи».Хорошо.Мое предложение:
// 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);
}
И результаты:
Найдено: Сказать
Найдено: прийти
Найдено: вы
Найдено: сказать
Найдено: 123 леса
В предложении: Скажите, что 123 из нас придут и встретят вас, скажем, в лесах 123 леса.
Количество: 5