2012-06-08 44 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---); 

我认为它可以帮助你。