удаление всех "<...>" из строки Java - PullRequest
0 голосов
/ 03 марта 2012

У меня есть строка, и я хотел бы удалить все теги с <и>

Например:

в строке

<title>Java Code</title>

будет

Java Code

и

<pre><font size="7"><strong>Some text here

</strong></font><strong>

будут

Some text here

Как это можно сделать с помощью charAt (i)?Заранее спасибо

Ответы [ 4 ]

5 голосов
/ 03 марта 2012

Как это можно сделать с помощью charAt (i)?

Вот как:

public static void main(String[] args) {
    String s = "<pre><font size=\"7\"><strong>Some text here\n\n</strong></font><strong>";

    String o = "";
    boolean append = true;
    for (int i = 0; i < s.length(); i++) {
        if (s.charAt(i) == '<')
            append = false;

        if (append)
            o += s.charAt(i);

        if (s.charAt(i) == '>')
            append = true;
    }

    System.out.println(o);
}
2 голосов
/ 03 марта 2012

Это довольно просто сделать с помощью регулярных выражений.

String src = "<title>Java Code</title>";
String dst = src.replaceAll("<.+?>", "");

System.out.println(dst);
1 голос
/ 03 марта 2012

Поскольку вы специально хотите использовать chatAt (i), вот алгоритм,

  • Начать обход строки с начала.
  • Если символ, с которым вы сталкиваетесь, является открывающим тегом (<), начинайте обходить строку, пока не найдете закрывающий тег (>). затем проверьте следующий символ, если он (<), затем повторите тот же процесс еще раз. </li>
  • Если следующий символ не (<), начните печатать строку, пока не увидите другой (<). </li>
  • Затем повторите шаг 2.
0 голосов
/ 03 марта 2012

с charAt, вы можете перебрать все символы в вашей строке, удалив все из <до следующего>.Тем не менее, ваша строка может содержать не-ASCII UTF кодовые точки, что может нарушить этот подход.

Я бы использовал регулярное выражение, что-то вроде

String someTextHere = "...";
String cleanedText = someTextHere.replaceAll( "<[^>]*?>", "" );

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...