Попробуйте просто использовать String#contains
в каждой строке:
while(reader.hasNextLine()) {
String line = reader.nextLine();
if (line.contains("ARTICLE")) {
count += 1;
}
}
Это, по крайней мере, обойдёт проблему необходимости брать подстроку в первую очередь. Проблема заключается в том, что, хотя сопоставление строк не должно иметь исключение за пределами границ, а также строки, длина которых превышает 7 символов, которые не совпадают, строки, содержащие менее 7 символов, могут вызвать проблемы.
Вы также можете использовать шаблон регулярных выражений, чтобы убедиться, что вы соответствуете ARTICLE
как отдельное слово:
while(reader.hasNextLine()) {
String line = reader.nextLine();
if (line.matches("\\bARTICLE\\b")) {
count += 1;
}
}
Это гарантирует, что вы не посчитаете линию, имеющую что-то вроде articles
, которая не является вашей точной целью.