2010-09-06 90 views
1

我有一個字符串可以很長,所以我想將它分成一個字符串數組,所以在每個位置字符串的長度應該低於指定的數字。拆分只能在白色空格或標點符號後面完成,因爲我需要每個片段在讀取時都有意義。它就像一個文字處理器,所以當這個單詞不適合當前行時,它會進入下一行。劃分字符串的有效方法

我曾想過用正則表達式分割給定字符串中的空格或標點符號,並將它們連接起來控制StringBuilder的長度,但我認爲在所有單詞中拼接然後加入它們可能不是很合適高效。

什麼是最有效的方法來執行此操作?有沒有任何圖書館可以幫助完成這項工作?

非常感謝。

+0

String.split? (http://download-llnw.oracle.com/javase/6/docs/api/java/lang/String.html#split(java.lang.String)) – miku 2010-09-06 11:16:37

+0

相關:[http://stackoverflow.com/問題/ 568968 /的確,任何一神祕的-A-法更快待辦事項字符串分割(http://stackoverflow.com/questions/568968/does-any-one-know-of - 更快的方法做的字符串拆分) – miku 2010-09-06 11:18:44

+0

如果你谷歌的「java字符包裝字符串」(不含引號),你應該能夠找到一些初學者的答案。 – msandiford 2010-09-06 11:50:55

回答

4

下面是一些你可以嘗試:

比方說,你在那至多ň字符的長字符串分割。

  • 開始一個位置0.移動光標n字符轉發。
  • 將光標向後移動1個字符,直到找到可以拆分的字符。
  • 拆分字符串,存儲第一部分,並在第二部分重申。

我認爲這可能比分裂然後加入你的字符串更有效。

0

如果真的存在問題,我會採用我能想到的最簡單的方法,並擔心可能的效率或性能問題。

2

阿帕奇公用事業公司可能會對此有所幫助。

http://commons.apache.org/lang/api-2.5/index.html

參見WordUtils靜態函數static String wrap(String str, int wrapLength) - 包裝單個文本行,通過' '標識詞。

它也是開源的,所以如果你需要更具體的東西只要看看源碼...

相關問題