2

我想在 Eclipse 中使用很长的字符串。所以我的问题是:每次我在括号中输入一个字符串时,Eclipse 只会将第一行识别为字符串(字符串中有换行符)

字符串:

public static final String EXAMPLE_TEST =""

当我插入字符串时:

public static final String EXAMPLE_TEST ="1.    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore 
2.  magna aliquyam erat, sed diam voluptua. 
3.  At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum 
4.  dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore
5.  magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, 
6.  no sea takimata sanctus est Lorem ipsum dolor sit amet.
"

1.(“orem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore”)之后的行被逃脱。

我希望有人能帮帮忙。谢谢

4

6 回答 6

10

在首选项中:

Java > 编辑器 > 打字

选中“粘贴到字符串文字时转义文本”。

于 2012-04-06T22:19:36.597 回答
6

通常这些都被分解了;

String blah = "I am \n" +
 "a very \n" +
 "long string.";

编译器希望标记在换行之前关闭。'token' 类似于 'String' 或 'blah' 或 '=' 或 '"I am"' 或 '+'。你不能有一个分成多行的标记——编译器不知道如何识别它。不幸的是,它是语言的基础。

于 2012-04-06T22:18:13.470 回答
4

您不能直接在String. 因此,您必须将它们+\n角色一起连接起来。

这可以通过简单的查找和替换工具轻松实现自动化。

尽管有人提议将多行字符串添加到 Java 7 中,但可能会很有趣。不幸的是,没有得到任何结果(更多详细信息可以在链接中找到)。

于 2012-04-06T22:19:23.657 回答
2

Java 不支持多行字符串。如果您不想将所有内容都放在一行中,则必须使用 +。

或者,您可以从与源一起分发的 ini(首选项)文件中加载文本(甚至可以在 jar 中)。当您考虑稍后添加 i18n 时,这也很好。

于 2012-04-06T22:18:41.633 回答
1

如果到处都没有 + 号,真的没有办法做到这一点。JLS说:

行终止符出现在“开始”之后和“结束匹配”之前是编译时错误。

因此,在源代码中声明此类字符串的唯一方法是将它们放在一行中,然后\r\n在中间插入,或者使用 + 运算符连接它们。您不应该害怕在字符串上使用 + 运算符,因为它们被声明为 static final,因此连接只会进行一次。

另一种方法是从文件中读取这些字符串,这样您就不必在源代码中声明它们。

于 2012-04-06T22:21:20.877 回答
1

遵循 Java 的编码约定,您必须连接 String 值:

public static final String EXAMPLE_TEST = "1.  Lorem ipsum dolor sit amet, "  
                                          + "consetetur sadipscing elitr, sed diam " 
                                          + "nonumy eirmod tempor invidunt ut labore "                                                
                                          + "et dolore "
                                          + "2.  magna aliquyam erat, sed "                                              
                                          + "diam voluptua. "
                                          + "3.  At vero eos et " 
                                          + "accusam et justo duo dolores et ea " 
                                          + "rebum. Stet clita kasd gubergren, no " 
                                          + "sea takimata sanctus est Lorem ipsum "
                                          + "4.  dolor sit amet. Lorem ipsum dolor " 
                                          + "sit amet, consetetur sadipscing elitr, "
                                          + "sed diam nonumy eirmod tempor invidunt "                                    
                                          + "ut labore et dolore " 
                                          + "5.  magna aliquyam "                                        
                                          + "erat, sed diam voluptua. At vero eos et "                                          
                                          + "accusam et justo duo dolores et ea " 
                                          + "rebum. Stet clita kasd gubergren, "
                                          + "6.  no sea takimata sanctus est Lorem " 
                                          + "ipsum dolor sit amet.";

确保连接运算符始终从下一行开始。 https://www.oracle.com/technetwork/java/javase/documentation/codeconventions-136091.html#248

希望这可以帮助!

快乐编码,

布雷迪

于 2019-04-21T16:59:13.460 回答