У меня есть такие строки, как «paddington road», и мне нужно извлечь слово «дорога» из этой строки. Как я могу это сделать?Извлечение токена из строки
Проблема в том, что мне нужно обработать список улиц и извлечь некоторые слова, такие как «дорога», «парк», «улица», «бульвар» и многие другие.
Что может быть лучшим способом сделать это? Сложность O (n * m), и если вы считаете, что я обрабатываю более 5000 улиц, производительность должна быть очень важной.
Я извлекаю значения из db Postgres и помещаю в список, но я не уверен, что это лучший способ, может быть, хэш-таблица быстрее запрашивает?
Я пытался что-то вроде этого:
// Parse selectedList
Iterator<String> it = streets.iterator();
Iterator<String> it_exception = exception.iterator();
int counter = streets.size();
while(it.hasNext()) {
while (it_exception.hasNext()) {
// remove substring it_exception.next() from it.next()
}
}
Что вы думаете?
Когда вы говорите, что вы хотите «извлечь» эти слова. Вам нужно что-либо делать со словами, которые вы «извлекаете», или просто хотите удалить их из строки? –
Считаете ли вы, что включение этого условия в запрос select приведет к сложности? –
Почему бы не использовать подстроку() в сочетании с методами indexof()? вы можете выполнить ту же операцию с извлечением строки с использованием SQL-запроса в postgres, у нее также есть подстрока() и strpos() –