划分字符串的有效方法

时间:2010-09-06 11:14:20

标签: java string performance split

我有一个很长的字符串,所以我想把它拆分成一个字符串数组,所以在每个位置字符串的长度应该低于指定的数字。分割只能在空白区域或标点符号后进行,因为我需要每个片段在读取时都有意义。它类似于文字处理器,因此当单词不适合当前行时,它将转到下一行。

我曾经想过用正则表达式将白色空格或标点符号中的给定String拆分并加入它们来控制StringBuilder的长度,但我认为拆分所有单词然后加入它们可能效率不高

执行此操作的最有效方法是什么?是否有任何图书馆可以帮助完成这项工作?

非常感谢。

3 个答案:

答案 0 :(得分:4)

您可以尝试以下方法:

假设您必须拆分最多 n 个字符的字符串。

  • 开始一个位置0.向前移动光标 n 个字符。
  • 向后移动光标1个字符,直到找到可以分割的字符。
  • 拆分字符串,存储第一部分,然后重申第二部分。

我认为这可能比分裂然后加入你的字符串更有效。

答案 1 :(得分:2)

Apache commons可能对此有所帮助。

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

请参阅WordUtils静态函数static String wrap(String str, int wrapLength) - 包含一行文字,通过' '识别单词。

它也是开源的,所以如果你需要更具体的东西,只需查看源代码......

答案 2 :(得分:0)

我会采用我能想到的最简单的方法,并担心如果它们确实存在问题,可能会出现效率或性能问题。