使用长字符串

时间:2012-04-06 22:14:27

标签: java

我想在Eclipse中使用很长的字符串。 所以我的问题是:每次我在Brackets 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”)逃脱。

我希望有人可以提供帮助。感谢

6 个答案:

答案 0 :(得分:10)

在偏好设置中:

Java>编辑>打字

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

答案 1 :(得分:4)

通常这些都被打破了;

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

编译器期望在新行之前关闭标记。 “令牌”类似于“字符串”或“blah”或“=”或“我是”或“+”。您不能拥有跨多行分割的令牌 - 编译器不知道如何识别它。不幸的是,这是该语言的基础。

答案 2 :(得分:4)

您无法直接在String处理换行符。因此,您不得不使用+\n字符将它们连接在一起。

使用简单的查找和替换工具可以很容易地实现自动化。

值得注意的是,虽然有一个proposal用于将多行字符串添加到Java 7.但遗憾的是没有任何内容(更多细节可以在链接中找到)。

答案 3 :(得分:2)

Java不支持多行字符串。如果你不想要一行中的所有内容,你必须使用+。

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

答案 4 :(得分:1)

如果没有+符号,到处都没有。 JLS说:

  

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

所以你只能在源代码中声明这样的字符串是通过将它们放在一行上然后在中间插入\r\n,或者使用+运算符来连接它们。你不应该害怕在字符串上使用+运算符,因为它们被声明为static final,因此连接只会执行一次。

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

答案 5 :(得分: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

希望这会有所帮助!

快乐的编码,

Brady