Как найти, присутствует ли подстрока в файле в hashmap?

У меня есть hashMap(guava bimap), в котором ключи и значения являются строками, я хотел написать программу, которая анализирует данный файл и заменяет все строки в файле, которые также находятся в BiMap, соответствующими значениями из Bimap.

например: у меня есть файл с именем test.txt имеет следующий текстJava is a set of several computer software and specifications developed by Sun Microsystems.

и мой BiMap имеет "java i" => "value1" "everal computer" => "value2" так далее..

Итак, теперь я хочу, чтобы моя программа принимала test.txt и Bimap в качестве входных данных и выдает результат, который выглядит примерно так

value1s a set of svalue2 software and specifications developed by Sun Microsystems.

Пожалуйста, укажите мне на любой алгоритм, который может сделать это, программа принимает большие файлы в качестве входных данных, поэтому грубая сила не может быть хорошей идеей.

Редактировать: я использую строки фиксированной длины для ключей и значений. Этот пример был предназначен для демонстрации операции. Благодарю.

1 ответ

Для такой пакетной операции я бы не использовал много данных в памяти. Поэтому я бы порекомендовал вам записать новый контент в новый файл. Если файл в конце должен быть точно таким же файлом, вы все равно можете заменить один файл другим, в конце процесса. читайте, пишите и очищайте каждую новую строку отдельно, и у вас не будет проблем с памятью.

Другие вопросы по тегам