Мне задали вопрос в интервью. Вопрос состоял в том, что входную строку (которая может прийти из электронной почты или большого текстового файла) необходимо отфильтровать со списком плохих слов и заменить чем-то другим.
например, если входная строка содержит плохие слова, которые существуют в списке плохих слов, плохое слово необходимо заменить чем-то другим, например, пустой строкой или подстановочным символом.
Решение, которое я придумала, состояло в том, чтобы поместить все плохие слова в хэш-карту и поместить входную строку в StringBuffer и извлечь слово за словом, разделенным пробелом, и проверить, существует ли слово в хэш-карте, если оно существует, заменить слово с пустой строкой. Но интервьюер сказал, что манипулирование StringBuffer может быть дорогим, потому что stringBuffer поддерживает массив символов. Замена означает, что необходимо скопировать в новый массив.
У кого-нибудь есть лучший алгоритм вместо этого решения?
Спасибо.