2016-08-08 4 views
1

В андроиде у меня есть основная строка и другая строка, у которой есть ключевое слово (-ы), разделенное пробелом (-ами). Я хочу вывести строку, в которой выделена основная строка с соответствующими ключевыми словами.Точное совпадение с частичной строкой Android

Ex.

String strMain = "This string contains  the main contents."; 

String strSearchKeywords = "this cont"; 

Результирующий выход должен быть что-то вроде:

String strResult = "<b>This</b> string <b>cont</b>ains  the main <b>cont</b>ents."; 

Один из способов разделить ключевые слова для поиска в виде списка-массива, а затем итерацию по каждому из этих пунктов и выделить основное содержание.

Однако существует ли какой-либо другой способ без повторения, например, с использованием регулярного выражения?

Спасибо.

ответ

3
strMain = strMain .replaceAll("(?i)(" + strSearchKeywords.replace(' ', '|') + ")", 
     "<b>$1</b>"); 

Что означает

strMain = strMain .replaceAll("(?i)(this|cont)", 
     "<b>$1</b>"); 

В (?i) устанавливает флаг игнорирований случай.