2012-03-03 2 views
0

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

Например:

в строке

<title>Java Code</title> 

будет

Java Code 

и

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

</strong></font><strong> 

будет

Some text here 

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

+0

Любые конкретные причины, по которым вы не хотите использовать регулярные выражения? –

+0

@AnotherCode У меня есть текст с полными метками < >, я хочу удалить их все и увидеть только текст. – Mustafa

+1

Вы можете найти подобный пост, это поможет вам, http://stackoverflow.com/questions/240546/removing-html-from-a-java-string – Vinesh

ответ

5

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

Вот как:

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

Это довольно просто сделать, используя регулярные выражения.

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

System.out.println(dst); 
+1

Он хотел использовать 'charAt'. :) – dacwe

0

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

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

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

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

1

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

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