Как использовать indexOf в Java - PullRequest
0 голосов
/ 30 марта 2012

Я пытаюсь разобрать заголовок из следующего фрагмента HTML:

"Website (Newton) at datanucleus.org">Website</a></div>

Я использую indexOf как таковой: strLine.indexOf("\">Website")

, и я хочу знатькак искать первый пробел, встречающийся до ссылки.Поэтому я хочу захватить все, что находится между "" и ""> Веб-сайт <"</p>

то есть datanucleus.org

Есть идеи? Спасибо!

Ответы [ 3 ]

1 голос
/ 30 марта 2012

Если у вас int idx = str.indexOf ("\"> Веб-сайт "), вы можете использовать String.lastIndexOf (" ", idx); для получения предыдущего пробела. Затем используйте подстроку!

0 голосов
/ 30 марта 2012

Я думаю, это то, что вы хотите:

int end = strLine.indexOf("\">Website");
int start = strLine.lastIndexOf(" ", end);

Из документов lastIndexOf:

Возвращает индекс в этой строке последнего вхождения указанной подстроки с обратным поиском, начиная с указанного индекса.

Существует также версия lastIndexOf, которая принимает char вместо строки; это может быть более эффективным в данном конкретном случае (но я не проверял):

int start = strLine.lastIndexOf(' ', end);

Для более сложных вещей вы также можете рассмотреть пакет java.util.regex.

0 голосов
/ 30 марта 2012

Подход с использованием регулярных выражений, вероятно, будет наиболее эффективным.Однако вы можете сделать это с помощью комбинации вызовов indexOf, lastIndexOf и substring.

int end = strLine.indexOf("\"Website");
int blank = strLine.substring(0, end).lastIndexOf(' ');
String interestingStuff = strLine.substring(blank + 1, end);
...