2010-01-07 70 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

相關問題