Как искать в обратном порядке, используя String или StringBuilder в Java?

Подскажите, пожалуйста, как искать в обратном порядке (обратный поиск) в Java?

Мне нужно сделать то же самое для поиска в файле HTML как текст.


person Ashish TheCool    schedule 01.06.2011    source источник
comment
stackoverflow .com/questions/2355293/   -  person William Melani    schedule 01.06.2011
comment
Вы хотите загрузить полный файл за один раз. если файл больше, вы должны загружать контент блок за блоком.   -  person Kamahire    schedule 01.06.2011


Ответы (2)


[...] как выполнять поиск в обратном порядке (обратный поиск) в java?

Я предполагаю, что вы имеете в виду поиск строки, начиная с конца.

Для этой задачи вы можете использовать String.lastIndexOf(str). Это позволит найти последний индекс подстроки str. Если вы хотите продолжить поиск с этой точки, вы можете добавить второй аргумент fromIndex.

Точно такие же методы существуют для StringBuilder.

person aioobe    schedule 01.06.2011
comment
... и у StringBuilder тоже самое. - person Jon Skeet; 01.06.2011
comment
Я читал этот вопрос, так как он искал эффективную реализацию поиска строки, начиная с конца строки (скажем, очень длинный html-файл, где вы ищете тег, который, как вы знаете, будет в последнем ~ 20%, а первые 80 просто так читать не хочется...) - person William Melani; 01.06.2011
comment
В порядке. Я читал это, так как он хотел использовать String или StringBuilder, и я не нашел ничего, указывающего на то, что это должно быть более эффективным, чем встроенные методы для этих классов. - person aioobe; 01.06.2011
comment
Мои извинения, я должен был быть более конкретным. На самом деле я хочу найти элемент html (в частности, раскрывающийся список) по его идентификатору, а затем захватить его XML-подобную часть (например, ‹select id=xyz name=abc › ‹option value=MyValue1›Option1‹/option› ‹option value=MyValue2 ›Option2‹/option› ‹/select›. Эта XML-подобная часть будет полезна для запуска запроса XPath для поиска атрибутов значения. Поэтому после нахождения идентификатора этого элемента html мне нужно выполнить поиск в обратном направлении, чтобы найти ‹select string. Так что я могу захватить весь раздел ‹select› ‹/select› Спасибо всем за ответы. - person Ashish TheCool; 01.06.2011
comment
Я бы посоветовал вам использовать парсер XML для этого. - person aioobe; 01.06.2011
comment
Я думаю, вы имеете в виду парсер HTML. но я не могу использовать сторонние библиотеки из-за некоторых ограничений. - person Ashish TheCool; 01.06.2011

если хотите искать в файле 1. Откройте файл в режиме произвольного доступа. 2. перейти в конец файла. 3. затем поиск в строке.

person Kamahire    schedule 01.06.2011
comment
Это именно то, что я хочу сделать, но это описание мне буквально не поможет. Шаг 1 прост, шаг 2 прост, шаг 3 не имеет смысла. - person mjaggard; 19.11.2014