package me.laria.code.idea_caseconv; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; class WordSplitConverter { private static List split(String s) { Pattern decamelize = Pattern.compile("(? parts = new ArrayList<>(); for (String p : all_parts) { p = p.trim(); if (!p.equals("")) { parts.add(p.toLowerCase()); } } return parts; } public static String convert(String in, String glue, WordTransformer transform) { List partsIn = split(in); ArrayList partsOut = new ArrayList<>(); int i = 0; for (String part : partsIn) { transform.transform(i, part).ifPresent(partsOut::add); i++; } return String.join(glue, partsOut); } }