在 python 中,我可以构造一个 HTML 字符串,而不必担心转义特殊字符,如 < 或 ",只需将字符串括在三引号中,例如:
html_string = """
<html>
<body>
<p>My text with "quotes" and whatnot!<p>
</body>
</html>
"""
在Java中有类似的方法吗?
在 python 中,我可以构造一个 HTML 字符串,而不必担心转义特殊字符,如 < 或 ",只需将字符串括在三引号中,例如:
html_string = """
<html>
<body>
<p>My text with "quotes" and whatnot!<p>
</body>
</html>
"""
在Java中有类似的方法吗?
它不能像在 Python 中那样在 Java 中完成。但是,如果您使用 Eclipse,请转到 Window->Preferences->Java->Editor->Typing 最后一个复选框是“Escape text when paste into a String literal”。检查那个。现在,当您在光标位于引号之间时粘贴时,它将被转义。
要从类似的问题中呼应 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\"}}";
不,但是当你粘贴它时,一些工具会为你逃避它,比如 eclipse。
出于所提到的目的,即使没有三元组, Java Server Pages"""
也能做到这一点:-)
在 Java 源代码中,双引号是一个特殊字符,用于声明字符串字面量。您不能在不转义的情况下在字符串文字中使用双引号。
一般来说,我会尽量避免在源代码中对字符串进行硬编码,特别是如果我发现自己经常这样做——正如你所指出的,它们作为源代码处理起来很痛苦,而且很可能进行更改,在这种情况下,您无需重新编译即可。如果您不需要为文本数据提供运行时部分,您可以使用从属性文件中读取数据这样简单的方法,或者您可以使用像Apache Velocity这样的模板引擎来保持字符数据的分离和仍然在运行时替换变量 - 链接用户指南中的几个示例正是使用 HTML 实现的。