Kushal Dixit created TEXT-238:
---------------------------------
Summary: Overload CaseUtils.toCamelCase to default
capitalizeFirstLetter=false
Key: TEXT-238
URL: https://issues.apache.org/jira/browse/TEXT-238
Project: Commons Text
Issue Type: Improvement
Affects Versions: 1.14.0
Reporter: Kushal Dixit
Right now, {{CaseUtils.toCamelCase(String, boolean, char...)}} always requires
specifying the {{capitalizeFirstLetter}} flag.
In most real-world cases, users just want to convert a string to camelCase with
the first letter lowercased by default, as that is basically what camelCase
means originally.
*Proposal:* add a new overload:
{code:java}
public static String toCamelCase(String str, char... delimiters) { ... }
{code}
* Since {{delimiters}} is already a varargs parameter, an overload without
delimiters is not needed; callers can just omit it.
* This overload will also be beneficial for *method references* in JDK 8+,
making code like {{list.stream().map(CaseUtils::toCamelCase)}} cleaner.
*Examples:*
{code:java}
CaseUtils.toCamelCase("java-utils", '-'); // javaUtils
CaseUtils.toCamelCase("convert this string"); // convertThisString
CaseUtils.toCamelCase("hello_world", '_') // helloWorld{code}
*Why it’s useful:*
Most callers just want the first letter lowercased. Requiring {{false}} every
time is unnecessary boilerplate. This overload simplifies the API for the
common case while keeping the existing method unchanged for backward
compatibility.
*Note:* Looking for feedback and approval. If this makes sense, I will raise a
PR with proper documentation and unit tests.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)