1

知道 Java 没有像 C# 中那样的逐字字符串 (@),有没有办法在代码中使用它时保持字符串的格式?我有一个 sql 代码,我必须在代码中使用,但为了可读性我必须保持某种格式,我可以在c#中使用@来做到这一点,但我怎样才能在Java中实现呢?

例如:

String SQL=@"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)
        )";

我必须按原样使用它,无需太多修改......

为愚蠢而编辑...

4

3 回答 3

5

如果您使用 Eclipse,则可以使用以下@formatter标签:

// @formatter:off

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

// @formatter:on

这些标签之间的任何内容都将不受Ctrl++ ( Shift)的影响。FSource > Format

于 2012-06-08T12:48:53.290 回答
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"
           + ")";
于 2012-06-08T12:49:45.433 回答
0

不幸的是,Java 没有提供 Verbatins 。

您可以使用String format方法来实现这一点。

例子:

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---);

我认为它可以帮助你。

于 2012-06-08T13:10:51.160 回答