2012-04-06 83 views
2

我想在Eclipse中使用很长的字符串。 所以我的问题是:每次我把在括号Eclipse中的String刚认识的第一行作为一个String(有在String linebreakes)使用长字符串

的字符串:

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 elitr,SED直径nonumy eirmod tempor invidunt UT labore等dolore”)得到了转义。

我希望有人能帮忙。谢谢

+0

IO想避免每次都添加一个“+”号(如上所述......非常长的字符串) – Ahmad 2012-04-06 22:15:52

+0

请问您可以在代码中发布您的确切代码。 – JDD 2012-04-06 22:18:28

+0

你对“+”有什么异议? – 2012-04-06 22:20:09

回答

10

偏好:

的Java>编辑>键入

检查 “粘贴到一个字符串时逃生的文字”。

+0

感谢:D它工作! – Ahmad 2012-04-06 22:30:00

+2

作为IDEA-fan我想提供使用它,因为它有默认启用的这个选项=) – Rorick 2012-04-06 22:31:45

3

通常这些被打破;

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

编译器期望令牌在新行之前关闭。 'token'类似'String'或'blah'或'='或''我''或'+'。你不能有一个分成多行的标记 - 编译器不知道如何识别这个标记。不幸的是,这是语言的基础。

2

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

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

4

您不能直接在String中处理换行符。所以你坚持连接+\n字符。

虽然使用简单的查找和替换工具,但这很容易实现自动化。

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

+0

+1为历史重提提案。 – 2012-04-06 22:23:06

1

真的没有办法,没有+符号到处都是。该JLS说:

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

所以你只能在你的源代码来声明这样的字符串的方法是让他们在同一行,你插入\r\n在中间,或使用+运算符来连接它们。你不应该害怕在字符串上使用+操作符,因为它们被声明为静态最终的,因此连接只能进行一次。

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