我想要实现这样的目标。
String str = "This is just a sample string";
List<String> strChunks = splitString(str,8);
和strChunks
应该是这样的:
"This is ","just a ","sample ","string."
请注意,像“sample”这样的字符串只有 7 个字符,而如果有 8 个字符,它将是“sample s”,它将分解我的下一个单词“string”。
我们还可以假设一个单词永远不会大于方法的第二个参数(在示例中为 8),因为在我的用例中,第二个参数始终是静态的,值为 32000。
我能想到的明显方法是循环遍历给定的字符串,在 8 个字符后中断字符串,然后从末尾搜索下一个空格。然后对剩余的字符串再次重复相同的操作。
有没有更优雅的方法来实现同样的目的。一些标准的第三方库(如 Guava、Apache Commons)中是否已经有任何实用方法可用。
最佳答案
拆分"(?<=\\G.{7,}\\s)"
生成您需要的结果 ( demo )。
\\G
表示上一场比赛的结束; .{7,}
指七个或以上任意字符; \\s
表示空格字符。
关于Java:按字符数分割字符串,但保证字符串仅在空格之后分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39347398/