2010-04-20 50 views
21

構建一個HTML字符串在Python中的辦法,我可以建立一個HTML字符串,而無需擔心轉義特殊字符,如<或「簡單地封閉在三引號,如字符串:簡單/直接/定界符在Java中

html_string = """ 
<html> 
<body> 
<p>My text with "quotes" and whatnot!<p> 
</body> 
</html> 
""" 

有沒有在Java中做到這一點類似的方式?

+4

編寫測試以供將來參考,這些東西通常被稱爲[heredocs](http://en.wikipedia.org/wiki/Heredoc) – 2010-04-20 20:48:06

+0

[This answer](http://stackoverflow.com/a/121513/403455)顯示瞭如何粘貼Eclispe中的多行轉義字符串。 – 2012-03-09 18:43:57

+0

對於報價:http://stackoverflow.com/questions/3034186/in-java-is-there-a-way-to-write-a-string-literal-without-having-to-escape-quote,爲多線:http://stackoverflow.com/questions/878573/java-multiline-string – 2015-03-20 16:42:51

回答

20

它也不會在Java在Python中做過類似。但是,如果您正在使用Eclipse,請轉至Window-> Preferences-> Java-> Editor-> Typing上一個複選框是「粘貼到字符串文本時轉義文本」。檢查一下。現在,當您在光標之間粘貼引號時,它將被轉義。

+6

某處總是有一個複選框; o) – 2010-04-20 21:05:25

1

沒有,但一些工具逃脫它時,你貼吧,像Eclipse。

+0

不錯,不知道!你如何在Eclipse中做到這一點?我正在運行Eclipse Galileo,當我粘貼HTML代碼時,它正在被複制。 – 2010-04-20 20:50:34

+1

窗口>首選項>的Java>編輯>鍵入檢查逃生文本時pastin一個字符串 – Beothorn 2010-04-20 21:04:45

0

在Java源代碼中,雙引號是一個特殊字符,使用聲明字符串文字,你不能在字符串文字中有一個雙引號而不會轉義它。

一般情況下,我會盡量避免在源代碼中硬編碼字符串這樣的,特別是當我發現自己做了很多 - 如您所知,他們是一個痛苦的處理源和它們可能很有可能改變,在這種情況下,你可以不用重新編譯。如果您不需要向文本數據提供運行時部件,則可以使用像從屬性文件中讀取數據那樣簡單的事情,或者可以使用像Apache Velocity這樣的模板引擎來保持字符數據的分離和靜止在運行時替換變量 - 鏈接用戶指南中的幾個示例與HTML完全相同。

+1

我完全同意,但對於一個快速測試(拖住一個bug),我總是喜歡有一些快速正搞鬼我的袖子; o) – 2010-04-20 21:09:47

+0

同意 - 全部取決於上下文。聽起來像Eclipse技巧在這種情況下是ftw! – Brabster 2010-04-20 21:24:23

0

要從similar question呼應benjismith的慣用伎倆,您可以使用備用的性格和事後替換它們:

String myString = "using `backticks` instead of quotes".replace('`', '"'); 

,我發現它的幫助,當我用JSON

String json = "{`kind`:`file`,`sid`:802,`rid`:5678 ,`attrs`:{`name`:`FILE-WG-2468`}}".replace('`', '"'); 
// vs 
String json = "{\"kind\":\"file\",\"sid\":802,\"rid\":5678 ,\"attrs\":{\"name\":\"FILE-WG-2468\"}}";