Class SplitUtil


public class SplitUtil extends Object
Utility to strategically split strings.


 // Given some arbitrary input string
 String input = "Hello World";

 // Try to best-effort split based on the strategy,
 // in this case by spaces even if the partial string is not close to the limit

 // ["Hello", "World"]
 SplitUtil.split(input, 8, true, Strategy.SPACE);

 // Cases where the string can fit within the limit, will result in no splitting

 // ["Hello World"]
 SplitUtil.split(input, 50, true, Strategy.SPACE);

In a more applied use-case, you can also define a smaller limit so it can fit into codeblocks of a message:

 public List<String> getRoleNames(Guild guild)
    // Create a newline separated list of role names from the guild
    String roleNames = guild.getRoleCache().applyStream(stream ->

    // Split the role names into a list of strings each small enough to fit into a message codeblock
    // A message can be 2000 characters long, do the math (2000 - 7 = 1993 characters) but to be safe go a little lower
    List<String> blocks = SplitUtil.split(roleNames, 1990, true, Strategy.NEWLINE, Strategy.ANYWHERE);

    // Then wrap each of these blocks into a codeblock for sending
                 .map(block -> "```\n" + block + "```")
See Also: