2012-04-06 55 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在中間,或使用+運算符來連接它們。你不應該害怕在字符串上使用+操作符,因爲它們被聲明爲靜態最終的,因此連接只能進行一次。

另一種方法是從文件中讀取這些字符串,以便您不必在源代碼中聲明它們。

相關問題