在 Eclipse 中粘贴多行 Java 字符串 [重复]

Posted

技术标签:

【中文标题】在 Eclipse 中粘贴多行 Java 字符串 [重复]【英文标题】:Paste a multi-line Java String in Eclipse [duplicate] 【发布时间】:2011-01-10 16:59:26 【问题描述】:

不幸的是,Java 没有用于多行字符串文字的语法。如果 IDE 可以轻松使用

之类的结构,那没问题
  String x = "CREATE TABLE TEST ( \n"
             + "A INTEGER NOT NULL PRIMARY KEY, \n"
            ...

使用 Eclipse 将多行字符串从剪贴板粘贴到 Java 源代码中的最快方法是什么(以一种自动创建类似上述代码的方式)。

【问题讨论】:

【参考方案1】:

据我所知,这似乎超出了 IDE 的范围。 Copyin ,您可以复制字符串,然后尝试使用 ctrl+shift+ F 对其进行格式化 大多数情况下,这些多行字符串不使用硬编码,而是应从属性或 xml 文件中使用。可以在以后进行编辑而无需更改代码

【讨论】:

不同意。这完全在 IDE 的范围内。毕竟,你可以编辑一个字符串,然后在它的中间输入回车,Eclipse 就会创建一个合适的 Java 多行字符串。 @Thilo 你的问题是将一个字符串复制到一个不是 IDE 格式的编辑器中,但你仍然希望它自动为你做这些安排!我相信这已经用完了IDE 的视图。告诉我一件事您的要求到底是什么。为什么要复制字符串?以便我们清楚问题。请编辑问题而不是评论 我发现了很多用例,其中你有很大的文本值,你想直接在 Java 代码中使用(例如,在单元测试中,你想尝试一个输入很长的方法)。因此,您经常需要将一个大的多行字符串(例如生成的 Lorem Ipsum 文本)粘贴到 Java 程序中。 IDE 似乎在范围内支持这样的操作,而无需强制用户手动拆分文本并用引号和 + 将每一行括起来。 @ammianus 在代码中包含大字符串是一种不好的做法,恕我直言。我们有 yml,属性文件。您显然需要区分什么是代码和什么是数据。【参考方案2】:

如果您在 TOAD 或其他面向 SQL 的 IDE 等工具中构建该 SQL,它们通常会将复制标记复制到剪贴板。例如,TOAD 有一个 CTRL+M,它在您的编辑器中获取 SQL,并完全按照您在上面的代码中的操作。它还涵盖了相反的情况……当您从 Java 中获取格式化字符串并希望在 TOAD 中执行它时。将 SQL 粘贴回 TOAD 并执行 CTRL+P 以删除多行引号。

【讨论】:

CNTL+M = 制作代码。在“视图”>“Toad 选项”中,您可以设置“代码”的格式。例如 Java。【参考方案3】:

好的,我只是 found the answer(在 *** 上,不少于)。

Eclipse 有一个选项,以便将多行文本复制粘贴到字符串文字中将产生带引号的换行符:

Preferences/Java/Editor/Typing/“粘贴到字符串文字时转义文本”

【讨论】:

需要注意的是,启用该功能后,您仍然需要先写两个引号,然后将文本粘贴到引号内。 对于 NetBeans 有一个插件:plugins.netbeans.org/plugin/2748/?show=true @BobbyEickhoff 因为它不是幂等的(如果这个词在这里有意义的话)。即,如果您有一个字符串“asdf\”asdf”,然后复制并粘贴中间部分,您最终会得到“asdf\\\”asdf”。事实上,我认为 eclipse 应该做的是有一个新的 ctrl+shift+v 粘贴转义的快捷方式。 在做了这样的粘贴之后,有没有人找到一种方法让自动格式化不理会字符串? //@formatter:off [your code] //@formatter:on【参考方案4】:

您可以使用这个 Eclipse 插件:http://marketplace.eclipse.org/node/491839#.UIlr8ZDwCUm 这是一个多行字符串编辑器弹出窗口。将插入符号放在字符串文字中按 ctrl-shift-alt-m 并粘贴您的文本。

【讨论】:

我在 Juno 中安装了这个,重新启动但它什么也没做。该组合没有做任何事情,我也无法在上下文菜单中找到一个项目:-(【参考方案5】:

见:Multiple-line-syntax

它还支持多行字符串中的变量,例如:

String name="zzg";
String lines = ""/**~!
    SELECT * 
        FROM user
        WHERE name="$name"
*/;
System.out.println(lines);

输出:

SELECT * 
    FROM user
    WHERE name="zzg"

【讨论】:

【参考方案6】:

EclipsePasteAsJavaString 插件允许您通过 Ctrl + Shift + V 将文本作为 Java 字符串插入

示例

按Ctrl+V照常粘贴:

some text with tabs and new lines

通过 Ctrl+Shift+V 粘贴为 Java 字符串

"some text\twith tabs\r\n" + "and new \r\n" + "lines"

【讨论】:

以上是关于在 Eclipse 中粘贴多行 Java 字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

eclipse 粘贴字符串自动添加转义符

PropertyView 中的 Java Eclipse 多行/列表属性

eclipse中java的单行注释多行注释文档注释的快捷键

Eclipse 4.12 使用热键注释掉 .gradle 文件中的多行

如何在 Eclipse PDT 中重新格式化多行注释?

如何使用 Swift 在 iOS 中检测多行键盘粘贴事件?