2011-10-25 52 views
0


我在一個項目上工作,有一小部分讓我很困惑。 說我有一個字符串數組:無法用「 n」開始換行?

String[]text = {"string","array"}; 

例如。
而且我想用單個字符串在每個單詞之間加一個換行符「\ n」。 因此,這裏是我的代碼

public String setText(String [] text) throws UnsupportedEncodingException{ 
    StringBuffer result = new StringBuffer(); 
    String newline = System.getProperty("line.separator"); 
    if (text.length > 0) { 
     result.append(text[0]); 
     for (int i=1; i<text.length; i++) { 
      result.append(newline); 
      result.append(text[i]); 
     } 
    } 
    return result.toString(); 
} 

我的代碼does not工作。返回值是單個字符串,但是當我使用它時,它仍然在一行中。

任何人都可以幫助我嗎?

謝謝

艾倫

+2

你的代碼*不*工作,這將包括系統默認的行分隔符。 *如何使用*是另一回事。你想對結果做什麼? –

+6

從你的問題中遺漏的關鍵是:**你如何使用結果字符串?例如,如果你將它輸出到(比如說)一個HTML流中,換行符不會導致HTML中的換行符(這是段落和/或'
'標籤的用處)。 –

+1

您正在使用系統行分隔符,這是很好的做法。但是,如果您檢查結果的操作系統與運行JVM的操作系統不同,那可能無法正常工作。與其他評論者所說的一樣,我們需要知道您如何使用該字符串。輸出到標準輸出?輸出到文件?你使用流還是作家? –

回答

1

您是否看到System.getProperty("line.separator");返回? 在不同的操作系統將是不同的符號\n - Linux和\r\n在Windows 嘗試使用 System.getProperty("line.separator", "\r\n");System.getProperty("line.separator", "\n");

-1

我會建議使用Joiner從谷歌的Guava library

Joiner.on(System.getProperty("line.separator")).join(text)

+1

有趣,但與問題無關。該代碼顯然成功地添加了換行符。 –

0

取決於你如何使用的結果。你有沒有嘗試寫入System.out /一個文件或類似的東西?