2014-09-01 46 views
0

如何將html字符串轉換爲java「out.println」語句(使用java)?將html字符串轉換爲java「out.println」 - 語句

例如

<h1>Hello world</h1><p style="background-color:red">hello</p> 

out.println("<h1>Hello world</h1>"); 
out.println("<p style=\"background-color:red\">hello</p>"); 
+0

你正在尋找一個HTML解析器? – 2014-09-01 12:20:38

+1

你不是已經回答了你自己的問題嗎?你發佈的作品。 – icza 2014-09-01 12:23:53

+0

他可能希望自動執行此操作。 – Dici 2014-09-01 12:25:12

回答

0

如果您正在嘗試簡化編輯,那麼Eclipse中有一個選項。查找:窗口 - >首選項 - > Java - >編輯器 - >打字 - >在字符串文字 - >在粘貼到字符串文字時轉義文本。

如果你想以編程方式做到這一點,這樣就足夠了:

public static String escapeForQuotes(String s) { 
    return escapeForQuotes(s, '\uFFFF'); 
} 

public static String escapeForQuotes(String s, char ignore) { 
    int len = s.length(); 
    StringBuilder sb = new StringBuilder(len * 6/5); 
    for (int i = 0; i < len; i++) { 
     char c = s.charAt(i); 
     if (c == ignore) { sb.append(c); continue; } 
     switch (c) { 
     case '\\': case '\"': case '\'': break; 
     case '\n': c = 'n'; break; 
     case '\r': c = 'r'; break; 
     case '\0': c = '0'; break; 
     default: sb.append(c); continue; 
     } 
     sb.append('\\').append(c); 
    } 
    return sb.toString(); 
} 

該函數返回其輸入與前引號,反斜槓,換行和空值插入反斜槓。可選的'ignore'參數允許你指定一個不需要轉義的字符。例如,'可能是但不必在"引用的字符串中轉義,反之亦然。

例如,

System.out.println("System.out.println(\"" + escapeForQuotes(html, '\'') + "\");"); 
+0

不錯,它的工作原理。多謝兄弟 – 2014-09-01 13:18:21

0

正則表達式替換。我認爲你想在IDE中進行替換。 (在Java中這樣做就需要反斜槓逃脫,通常像"\w"成爲"\\w"。)

通過

out.println("$2");\r\n 

\1匹配第一組(標籤名稱)更換

<(\w+)[^>]*>([.\r\n]*)</\1>