public static List<String> split( String str, char delim ) {
		return split( str, delim, false, false );
	}
@Test
	void splitTrim() {
		// empty
		assertEquals(
			Arrays.asList( "" ),
			StringUtils.split( "", ',', true, false ) );

		// not empty
		assertEquals(
			Arrays.asList( "a" ),
			StringUtils.split( "a", ',', true, false ) );
		assertEquals(
			Arrays.asList( "a", "b" ),
			StringUtils.split( "a,b", ',', true, false ) );
		assertEquals(
			Arrays.asList( "a", "b", "c" ),
			StringUtils.split( "a,b,c", ',', true, false ) );

		// empty parts
		assertEquals(
			Arrays.asList( "", "b", "c" ),
			StringUtils.split( ",b,c", ',', true, false ) );
		assertEquals(
			Arrays.asList( "a", "", "c" ),
			StringUtils.split( "a,,c", ',', true, false ) );
		assertEquals(
			Arrays.asList( "a", "b", "" ),
			StringUtils.split( "a,b,", ',', true, false ) );

		// parts with leading/trailing spaces
		assertEquals(
			Arrays.asList( "a", "b", "c" ),
			StringUtils.split( "a, b, c", ',', true, false ) );
		assertEquals(
			Arrays.asList( "a", "b", "c" ),
			StringUtils.split( " a,b,c ", ',', true, false ) );
		assertEquals(
			Arrays.asList( "a", "b", "c" ),
			StringUtils.split( "  a,  b  ,c  ", ',', true, false ) );

		// space delimiter
		assertEquals(
			Arrays.asList( "a", "b", "c" ),
			StringUtils.split( "a b c", ' ', true, false ) );
		assertEquals(
			Arrays.asList( "a", "", "", "b", "", "c" ),
			StringUtils.split( "a   b  c", ' ', true, false ) );

		// new line delimiter
		assertEquals(
			Arrays.asList( "a", "b", "c" ),
			StringUtils.split( "a\nb\nc", '\n', true, false ) );
		assertEquals(
			Arrays.asList( "a", "", "", "b", "", "c" ),
			StringUtils.split( "a\n\n\nb\n\nc", '\n', true, false ) );
	}