23

在 python 中,我可以构造一个 HTML 字符串,而不必担心转义特殊字符,如 < 或 ",只需将字符串括在三引号中,例如:

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

在Java中有类似的方法吗?

4

5 回答 5

22

它不能像在 Python 中那样在 Java 中完成。但是,如果您使用 Eclipse,请转到 Window->Preferences->Java->Editor->Typing 最后一个复选框是“Escape text when paste into a String literal”。检查那个。现在,当您在光标位于引号之间时粘贴时,它将被转义。

于 2010-04-20T21:00:11.570 回答
2

要从类似的问题中呼应 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\"}}";
于 2016-10-21T16:51:56.113 回答
1

不,但是当你粘贴它时,一些工具会为你逃避它,比如 eclipse。

于 2010-04-20T20:46:47.737 回答
1

出于所提到的目的,即使没有三元组, Java Server Pages"""也能做到这一点:-)

于 2010-04-20T20:59:23.013 回答
0

在 Java 源代码中,双引号是一个特殊字符,用于声明字符串字面量。您不能在不转义的情况下在字符串文字中使用双引号。

一般来说,我会尽量避免在源代码中对字符串进行硬编码,特别是如果我发现自己经常这样做——正如你所指出的,它们作为源代码处理起来很痛苦,而且很可能进行更改,在这种情况下,您无需重新编译即可。如果您不需要为文本数据提供运行时部分,您可以使用从属性文件中读取数据这样简单的方法,或者您可以使用像Apache Velocity这样的模板引擎来保持字符数据的分离和仍然在运行时替换变量 - 链接用户指南中的几个示例正是使用 HTML 实现的。

于 2010-04-20T20:48:26.397 回答