2017-02-27 61 views
-1

我使用String.format()方法時出現問題。Java字符串格式問題

所以我想創建一個字符串與換行,我使用%n

我創建這樣的字符串:

for (int i = 0; i < authorNames.size(); i++) { 
    tmpReturnString += authorNames.get(i) + "%n"; 
} 

authorNames beeing一個ArrayList中。 接下來,我要返回格式的字符串:

returnResult.setAttributes(0, String.format(tmpReturnString.substring(0, tmpReturnString.length() - 1)))

returnResult將是我的回報。

但是在這裏我得到一個java.util.UnknownFormatConversionException: Conversion = '%'

不幸的是我不知道如何解決這個問題。另外,其他問題都沒有幫助我。

在此先感謝!

+0

換行字符是'\ N',試試吧;) –

+2

你'substring'操作從結束了'N'。爲什麼要這麼做? –

回答

2

我想你想刪除最後一個新行,但通過刪除只有一個字符,你最終以你的字符串結尾%

而是執行此操作:

String.format(tmpReturnString.substring(0, tmpReturnString.length() - 2)) 

(除去2個字符,而不是僅僅1)

,或者甚至更好,如果你使用Apache的百科全書:

String.format(StringUtils.join(authorNames, "%n")); 
+0

Oh dang ..非常感謝!看着我的代碼太久沒有看到... –

0
for (int i = 0; i < authorNames.size(); i++) { 
    tmpReturnString += authorNames.get(i) + "%n"; 
} 

送花兒給人返回帶有兩個最後一個字符的字符串是「%n」。 所以當你使用

substring(0, tmpReturnString.length() - 1) 

現在最後一個字符是'%'。 '%'不是有效的格式說明符。

細節在這裏:http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html