簡體   English   中英

從Java字符串中刪除所有“ <…>”

[英]removing all “<…>” from a java String

我有一個字符串,我想用<和>刪除所有標簽

例如:

在字符串中

<title>Java Code</title>

將會

Java Code

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

</strong></font><strong>

將會

Some text here

使用charAt(i)怎么辦? 提前致謝

使用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);
}

使用正則表達式執行此操作非常簡單。

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

System.out.println(dst);

由於您特別想使用chatAt(i),因此這里是算法,

  • 從頭開始遍歷字符串。
  • 如果遇到的字符是開始標記(<),則開始遍歷字符串,直到找到結束標記(>)。 然后檢查下一個字符,如果它是(<),則再次重復相同的過程。
  • 如果下一個字符不是(<),則開始打印字符串,直到看到另一個(<)。
  • 然后重復步驟2。

使用charAt ,您可以遍歷字符串中的所有字符,將所有內容從<刪除到下一個>。 但是,您的字符串可能包含非ASCII UTF代碼點,這可能會破壞此方法。

我會去一個正則表達式,像

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

但是,讓我也向您指出這個問題 ,其中列出了與正則表達式方法有關的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM