Java字符串使用引号而无需转义字符

7

我知道在Java字符串中可以在双引号前面加上 \ 符号来表示双引号。但如果字符串中频繁使用双引号,有没有一种方法可以一次性标记字符串,这样就不需要在每个双引号前写 \ 符号了?(就像在C#中,可以在字符串前面放置 @ 符号)
示例:

String quotes = @"""""""""""""""""""";

替代

String quotes = "\"\"\"\"\"\"\"\"\"\"\"";

类似问题:https://dev59.com/bWgv5IYBdhLWcg3wKtlB - Felk
1
注意(2018年1月),原始字符串字面量可能会在Java中出现(JDK 10或更高版本):请参见在Java中,是否有一种方法可以编写字符串文字而无需转义引号? - VonC
@VonC 希望如此。Java正在缓慢但稳步地取得进展 :) - Victor2748
3个回答

8

你不能这样做。但是,如果你懒得逐个转义双引号,有一些技巧可以解决这个问题。例如:

String quotes = "....................".replace(".","\"");
System.out.println(quotes);

output: """"""""""""""""""""


1
请确保字符串不包含标点符号。 - im_brian_d

5

不,没有办法编写未转义引号的String 字面量

您可以在运行时编写文本并加载它。


1

我不知道有什么方法可以逃避代码中所有后续的双引号。但是,我建议不要硬编码String字面量。相反,我建议您使用ResourceBundle(甚至Properties)。其中一个好处是您不必以这种方式读取的String进行转义。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接