2010-01-07 38 views
9

我的字符串中有双引号,在C#我会做:Java是否具有'@'字符来转义字符串引号?

string blah = @"this is my ""text"; 

我会怎么做,在Java中?

+0

[Java的等效C#的逐字字符串与@](http://stackoverflow.com/questions/2673855/java-equivalent-of-cs-verbatim-strings-with) – Mark 2012-03-31 19:39:18

+0

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

回答

12

不可以。这种功能在Java中不可用。
来自太阳docs

当在打印语句中遇到转义序列时,编译器会相应地解释它。例如,如果你想要把引号内的引号必须使用转义序列,\”,对内部引号。要打印一句话

She said "Hello!" to me.

你会写

System.out.println("She said \"Hello!\" to me."); 
3

没有什么像它目前,但它是一个“修复了解”请求增强

若添加这个功能将允许这样的字符串字面量:

String qry = @" 
    SELECT 
    a.name, b.number 
    FROM 
    User a, Data b 
    WHERE 
    a.name = "James" 
     AND 
    a.id = b.id 
"; 

一些评论拒绝这个主要的事实,这是一个语法糖,但显然有它的高需求,所以它的可能有一天我们会看到这一点。

+6

我不明白拒绝某个功能的原因,因为它是语法糖。允许编码员不要编写锅炉代码在我看来就像是一种语言改进... – 2011-04-18 15:46:28

+1

此答案中的bugs.sun.com链接目前已被打破;它链接到一个带有“此错误不可用”消息的Oracle页面。该页面的当前版本是否可用? – 2013-10-30 16:30:41

相关问题