2012-06-08 77 views
1

知道Java doest像C#中一樣具有逐字字符串(@),在代碼中使用它時,是否可以保留字符串的格式?我有一個sql代碼,我必須在代碼,但爲了可讀性,我必須保持它在某種格式,我可以在c#中使用@來做到這一點,但是我怎樣才能在Java中實現呢?JAVA中的逐字符串替代品

例如:

String [email protected]"INSERT INTO VERSION_INFO 
     (TABLE_NAME , 
      VERSION_ID , 
      DATE, 
      EXP 
     ) 
VALUES ('' , -- TABLE_NAME - varchar(50) 
      0 , -- VERSION_ID - int 
      0 , -- DATE- int 
      '' -- EXP- varchar(100) 
     )"; 

我必須直接使用這些,沒有太多的修飾......

編輯的stupidness ...

回答

5

如果你使用Eclipse,你可以使用以下@formatter標籤:

// @formatter:off 

String string = "Your beautifully" 
    + " formatted string"; 

// @formatter:on 

這些標籤之間的任何東西都會免疫於Ctrl + Shift + FSource > Format)。

2

我可以說什麼,除了......抱歉。

String SQL = "INSERT INTO VERSION_INFO (\n" 
      + " TABLE_NAME,\n" 
      + " VERSION_ID,\n" 
      + " DATE,\n" 
      + " EXP\n" 
      + ")\n" 
      + "VALUES (\n" 
      + " '' , -- TABLE_NAME - varchar(50)\n" 
      + " 0, -- VERSION_ID - int\n" 
      + " 0, -- DATE- int\n" 
      + " '' -- EXP- varchar(100)\n" 
      + ")"; 
+0

哎呀,我忘了引號我猜:P但仍然,它不是這種情況:) – Sin5k4

+0

我說的是,在標準的Java,它沒有得到比我在這個答案寫的好多少。 – aioobe

+0

java代碼是否也需要換行符(\ n)才能生成與C#逐字字符串相同的字符串? –

0

不幸的是,Java不提供Verbatins。

您可以使用Stringformat方法來實現此目的。

例子:

String str= "Hello %s, isn't %s cool?"; 
String formatted = String.format(str,"Ivan", "Scala"); 
System.out.println(formatted); 

你可以先寫你的查詢,然後你可以格式化你的查詢字符串相同。

例如

String SQL="INSERT INTO VERSION_INFO 
    (TABLE_NAME , 
     VERSION_ID , 
     DATE, 
     EXP 
    ) 
VALUES ('%s','%s',%s,'%s')"; 

String.format(SQL,--set as order---); 

我認爲它可以幫助你。