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