2010-09-06 91 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) - 包装单个文本行,通过' '标识词。

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

相关问题