Hi Commons Lang Developers,
I would like to propose the addition of some new utility methods to
`StringUtils` in Apache Commons Lang. These methods are commonly needed in
real-world projects but currently not available in the library.
Here are some initial ideas:
1. *findAllOccurrences(String str, String subStr)*
- Description: Returns a list of all indexes where a substring occurs in
the main string.
- Example: findAllOccurrences("abcabc", "a") → [0, 3]
2. *toTitleCase(String str)*
- Description: Converts each word's first character to uppercase and the
rest to lowercase.
- Example: toTitleCase("hello world") → "Hello World"
3. *smartTruncate(String str, int maxLength)*
- Description: Truncates the string to the nearest full word under the
limit and appends "..." if needed.
- Example: smartTruncate("This is a long sentence", 10) → "This is..."
4. *removeRepeatedCharacters(String str)*
- Description: Removes consecutive duplicate characters.
- Example: removeRepeatedCharacters("aaabbbcccaaa") → "abca"
5. *isTitleCase(String str)*
- Description: Checks if the input is in title case format.
- Example: isTitleCase("Hello World") → true
6. *countWords(String str)*
- Description: Returns the number of words in the input string.
- Example: countWords("Apache Commons Lang") → 3
I’d be happy to implement these methods and write appropriate JUnit tests.
If the community finds these valuable, I can create a JIRA issue and start
working on the patch.
Looking forward to your feedback!
Thanks & Regards,
Kunal Bhangale
[email protected]