Я добрался до точки, где могу читать файл и выводить фактический текст в файле, но я не совсем уверен, как продолжить поиск определенного слова и отображение количества слов.Как бы найти слово, определенное пользователем, и подсчитать вхождения в текстовом файле с помощью java?
ответ
Существует много способов. Если вы читаете файл по очереди, вы можете использовать метод indexOf
класса String
для поиска в каждой строке текста. Вам нужно будет называть это повторно, чтобы переместиться по линии, ища дополнительные вхождения.
См документация по indexOf
адресу:
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(java.lang.String,%20int)
Как я понимаю ваш вопрос, если вы читаете строку текста после строки вы можете использовать рекурсивность подсчитать, сколько вхождений слов появляются в том же линия:
Следующая отсчеты метод, сколько раз появляется слово в одной и той же линии
private static int numberOfLineOccurences;
public static int countNumberOfTimesInALine(String line, String word) {
if (line.indexOf(word) == -1) {
return numberOfLineOccurences;
} else {
numberOfLineOccurences++;
if (line.indexOf(word) + word.length() > line.length() -1 ) {
return numberOfLineOccurences;
}
return countNumberOfTimesInALine(
line.substring(line.indexOf(word) + word.length()), word);
}
}
Для того, чтобы следить за работой первого вхождения моего слова в моем файле вместе с числом встречаемости я создал класс WordInfo так:
class WordInfo {
private int firstOccurenceLineNumber;
private int firstOccurenceColumnNumber;
private String word;
private int numberOfOccurences;
public String getWord() {
return word;
}
public int getNumberOfOccurences() {
return numberOfOccurences;
}
public WordInfo(String word) {
this.word = word;
}
public void upOccurrence() {
numberOfOccurences++;
}
public void upOccurrence(int numberOfTimes) {
numberOfOccurences+= numberOfTimes;
}
public int getFirstOccurenceLineNumber() {
return firstOccurenceLineNumber;
}
public void setFirstOccurenceLineNumber(int firstOccurenceLineNumber) {
this.firstOccurenceLineNumber = firstOccurenceLineNumber;
}
public int getFirstOccurenceColumnNumber() {
return firstOccurenceColumnNumber;
}
public void setFirstOccurenceColumnNumber(int firstOccurenceColumnNumber) {
this.firstOccurenceColumnNumber = firstOccurenceColumnNumber;
}
}
Теперь я могу создать свой метод для поиска. Я даю ему слово для поиска, имя файла и объект WordInfo для заполнения в качестве входных параметров
public static boolean searchWord(String word, String filePath, WordInfo wInfo) throws IOException {
boolean result = false;
boolean firstOccurenceFound = false;
int lineNumber = 0;
BufferedReader reader = new BufferedReader(new FileReader(new File(filePath)));
String line = null;
while ((line = reader.readLine()) != null) {
lineNumber++;
numberOfLineOccurences= 0;
if (line.indexOf(word) != -1) {
if (!result) {
result = true;
}
if (!firstOccurenceFound) {
firstOccurenceFound = true;
wInfo.setFirstOccurenceLineNumber(lineNumber);
wInfo.setFirstOccurenceColumnNumber(line.indexOf(word) + 1);
}
wInfo.upOccurrence(countNumberOfTimesInALine(line, word));
}
}
reader.close();
return result;
}
Вот иллюстрация и результат ниже
У меня есть следующее содержимое в файл с именем DemoFile. TXT
И я проверить код, используя следующий основной метод (я ищу слова concept
, например):
public static void main(String[] args) throws IOException {
WordInfo wInfo = new WordInfo("concept");
if (searchWord("concept", FILE_PATH, wInfo)) {
System.out.println("Searching for " + wInfo.getWord());
System.out.println("First line where found : " + wInfo.getFirstOccurenceLineNumber());
System.out.println("First column found: " + wInfo.getFirstOccurenceColumnNumber());
System.out.println("Number of occurrences " + wInfo.getNumberOfOccurences());
}
}
И я получить следующие результаты:
- 1. как найти определенное слово в текстовом файле в java
- 2. Подсчитайте определенное слово в файле с помощью
- 3. Найти определенное слово в файле
- 4. Как найти конкретное слово в текстовом файле?
- 5. Как подсчитать частоту слова в текстовом файле с помощью Java?
- 6. В командном файле, как найти вхождения строки в текстовом файле?
- 7. Найти и заменить слово в текстовом файле
- 8. Как найти целое слово в текстовом файле?
- 9. Groovy найти конкретное слово в текстовом файле
- 10. Найти конкретное слово в текстовом файле
- 11. Как найти определенное слово с помощью Regex?
- 12. , чтобы найти частоту слов в текстовом файле с помощью java
- 13. Как подсчитать, сколько раз слово появляется в текстовом файле
- 14. Как отредактировать определенное слово в текстовом документе?
- 15. Java: Лучший способ найти слово в алфавитном отсортированном текстовом файле
- 16. заменить слово в текстовом файле Java
- 17. Определите, существует ли определенное определенное выражение в текстовом файле (Java)
- 18. Как найти конкретное слово в текстовом файле с использованием .NET
- 19. Как подсчитать определенные символы в текстовом файле с помощью петель
- 20. Как найти слово в файле в java
- 21. Мне нужно удалить определенное слово в текстовом файле каждой строки
- 22. Как найти функции в файле cpp, которые содержат определенное слово
- 23. удалите определенное слово в текстовом файле через партию
- 24. Найти слово, используя Java
- 25. Как заменить слово в текстовом файле с помощью сканера?
- 26. Как найти простое слово в файле Java?
- 27. Найти слово и заменить целую строку в текстовом файле
- 28. Как найти определенное слово в файле без использования ERRORLEVEL (пакетный)
- 29. Как заменить символ на определенное слово в текстовом файле с помощью python
- 30. Как найти конкретное слово в текстовом файле на Android