2014-10-17 180 views
7

我知道可以在它们之前加上\符号来在Java字符串中编写双引号。但是如果在字符串中使用双引号很多,是否有一种方法可以标记字符串一次,所以不需要在每个符号前面写上\符号? (就像在C#中,可以将字符串之前把@符号) 例子:Java字符串使用不带转义字符的引号

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

,而不是

String quotes = "\"\"\"\"\"\"\"\"\"\"\""; 
+0

类似的问题:http://stackoverflow.com/questions/10806973/working-with-long-strings-heredocs-in-java-the-readable-approach – Felk 2014-10-17 01:24:26

+1

注意(2018年1月),原始字符串文字可能是(JDK 10或更高版本):请参阅[在Java中,是否有一种方法可以编写字符串文字而不必使用引号?](https://stackoverflow.com/a/48481601/6309)。 – VonC 2018-01-27 23:25:18

+0

@VonC让希望。慢慢地,但肯定java正在取得进展:) – Victor2748 2018-01-28 22:41:52

回答

7

你不能。但是如果你懒得逃避每一个双引号,有一些技巧可以做到这一点。例如:

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

输出:""""""""""""""""""""

+1

只要确保字符串不包含标点符号 – 2014-10-17 01:50:10

5

没有,就是写一个String字面没有这样的方式与未转义的引号。

您可以在外部写入文本并在运行时加载它。

1

没有办法转义在代码中所有的后续双引号(据我所知)。但是,我建议不要使用硬编码String文字。相反,我建议你使用ResourceBundle(或甚至Properties)。一种好处是你不必转义String(s)你以这种方式阅读。

相关问题