public class Try{
public static void main (String args[]) throws IOException {
BufferedReader in = new BufferedReader(new FileReader("Try.txt"));
Scanner sc = new Scanner(System.in);
System.out.print("Enter the subtring to look for: ");
String Word=sc.next();
String line=in.readLine();
int count =0;
String s[];
do
{
s=line.split(" ");
for(int i=0; i < s.length; i++)
{
String a = s[i];
if(a.contains(Word))
count++;
}
line=in.readLine();
}while(line!=null);
System.out.print("There are " +count+ " occurences of " +Word+ " in ");
java.io.File file = new java.io.File("Try.txt");
Scanner input = new Scanner(file);
while(input.hasNext())
{
String word = input.nextLine();
System.out.print(word);
}
}
}
Целью моей программы является запросить у пользователя определенное слово (слова), которое будет проверяться в текстовом файле, и если оно существует , он будет подсчитывать количество раз, когда введенное пользователем слово происходит в текстовом файле. Пока моя программа может искать только одно слово. Если я попробую два слова, разделенных пробелом, будет поиск и подсчет только первого слова для его количества. Любые советы по поиску нескольких слов?Запросить слово и проверить его количество в текстовом файле
Какая логика в программе заставит вас думать, что она будет искать несколько слов? У вас есть строка 'if (a.contains (Word)) и один счетчик. Вам нужно будет сохранить счетчики за введенное слово. – KevinO
'String Word = sc.next();' Это означает, что вы читаете 1 слово в 'String' под названием' Word'. Даже если вы должны изменить эту строку, вам нужно будет сделать больше, чтобы гарантировать, что два слова, которые вы ищете, не смежны. Вы также можете запустить отладчик, чтобы проверить содержимое «Word», чтобы увидеть, что он содержит только одно значение. См. [Scanner.next()] (https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next()) –