使用长字符串

问题描述 投票:2回答:6

我想在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.后线(“我祈祷,胡萝卜,consetetur sadipscing多年来,但是远投nonumy矿石等疼痛”)得到了转义。

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

java
6个回答
10
投票

在首选项中:

Java>编辑器>打字

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


4
投票

通常这些都被打破了;

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

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


4
投票

您无法直接在String中处理换行符。因此,你坚持用+\n角色将它们连接起来。

通过简单的查找和替换工具,这可以很容易地自动化。

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


2
投票

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

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


1
投票

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

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

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

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


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

希望这可以帮助!

快乐的编码,

布雷迪

© www.soinside.com 2019 - 2024. All rights reserved.