StringUtils.cfc
A collection of String utility functions found in the Java Lib: org.apache.commons.lang.StringUtils - this is being reproduced as a "code kata" and means of relaxation and self-therapy.
Install / Use
/learn @bennadel/StringUtils.cfcREADME
StringUtils.cfc
by Ben Nadel (on [Google+][googleplus])
A while back, I happened to come across this [StringUtils Java Library][javalib]. A number of the methods in the library are native to ColdFusion; however, many of them are not. I thought it would be a fun "code kata" to try an recreate this String Utils library as a ColdFusion functions. To be honest, I've been working a lot lately and I thought this would be a fun little mental vacation; a little bit of "therapy," if you will.
Here is a list of the functions in the String Utils library (that I will be reproducing, or at least trying to reproduce). Since ColdFusion doesn't support like-named functions with different signatures, the multi-signature functions will have to be collapsed into one function with internal routing logic based on the arguments.
NOTE: In some cases, I'll have to change the function names in the ColdFusion version of the library since they conflict with built-in functions or operator names (ex, "contains" will have to become something like "containsSubstring" ).
- abbreviate( String str, int maxWidth ) :: String
- abbreviate( String str, int offset, int maxWidth ) :: String
- abbreviateMiddle( String str, String middle, int length ) :: String
- capitalize( String str ) :: String
- center( String str, int size ) :: String
- center( String str, int size, char padChar ) :: String
- center( String str, int size, String padStr ) :: String
- chomp( String str ) :: String
- chomp( String str, String separator ) :: String
- chop( String str ) :: String
- contains( String str, char searchChar ) :: boolean [RENAMED]
- contains( String str, String searchStr ) :: boolean [RENAMED]
- containsAny( String str, char[] searchChars ) :: boolean [RENAMED]
- containsAny( String str, String searchChars ) :: boolean [RENAMED]
- containsIgnoreCase( String str, String searchStr ) :: boolean
- containsNone( String str, char[] searchChars ) :: boolean
- containsNone( String str, String invalidChars ) :: boolean
- containsOnly( String str, char[] valid ) :: boolean
- containsOnly( String str, String validChars ) :: boolean
- countMatches( String str, String sub ) :: int
- defaultIfBlank( String str, String defaultStr ) :: String
- defaultIfEmpty( String str, String defaultStr ) :: String
- defaultString( String str ) :: String
- defaultString( String str, String defaultStr ) :: String
- deleteWhitespace( String str ) :: String
- difference( String str1, String str2 ) :: String
- endsWith( String str, String suffix ) :: boolean
- endsWithAny( String string, String[] searchStrings ) :: boolean
- endsWithIgnoreCase( String str, String suffix ) :: boolean
- equals( String str1, String str2 ) :: boolean
- equalsIgnoreCase( String str1, String str2 ) :: boolean
- getCommonPrefix( String[] strs ) :: String
- getLevenshteinDistance( String s, String t ) :: int
- indexOf( String str, char searchChar ) :: int
- indexOf( String str, char searchChar, int startPos ) :: int
- indexOf( String str, String searchStr ) :: int
- indexOf( String str, String searchStr, int startPos ) :: int
- indexOfAny( String str, char[] searchChars ) :: int
- indexOfAny( String str, String searchChars ) :: int
- indexOfAny( String str, String[] searchStrs ) :: int
- indexOfAnyBut( String str, char[] searchChars ) :: int
- indexOfAnyBut( String str, String searchChars ) :: int
- indexOfDifference( String[] strs ) :: int
- indexOfDifference( String str1, String str2 ) :: int
- indexOfIgnoreCase( String str, String searchStr ) :: int
- indexOfIgnoreCase( String str, String searchStr, int startPos ) :: int
- isAllLowerCase( String str ) :: boolean
- isAllUpperCase( String str ) :: boolean
- isAlpha( String str ) :: boolean
- isAlphanumeric( String str ) :: boolean
- isAlphanumericSpace( String str ) :: boolean
- isAlphaSpace( String str ) :: boolean
- isAsciiPrintable( String str ) :: boolean
- isBlank( String str ) :: boolean
- isEmpty( String str ) :: boolean
- isNotBlank( String str ) :: boolean
- isNotEmpty( String str ) :: boolean
- isNumeric( String str ) :: boolean
- isNumericSpace( String str ) :: boolean
- isWhitespace( String str ) :: boolean
- join( Collection collection, char separator ) :: String
- join( Collection collection, String separator ) :: String
- join( Iterator iterator, char separator ) :: String
- join( Iterator iterator, String separator ) :: String
- join( Object[] array ) :: String
- join( Object[] array, char separator ) :: String
- join( Object[] array, char separator, int startIndex, int endIndex ) :: String
- join( Object[] array, String separator ) :: String
- join( Object[] array, String separator, int startIndex, int endIndex ) :: String
- lastIndexOf( String str, char searchChar ) :: int
- lastIndexOf( String str, char searchChar, int startPos ) :: int
- lastIndexOf( String str, String searchStr ) :: int
- lastIndexOf( String str, String searchStr, int startPos ) :: int
- lastIndexOfAny( String str, String[] searchStrs ) :: int
- lastIndexOfIgnoreCase( String str, String searchStr ) :: int
- lastIndexOfIgnoreCase( String str, String searchStr, int startPos ) :: int
- lastOrdinalIndexOf( String str, String searchStr, int ordinal ) :: int
- left( String str, int len ) :: String
- leftPad( String str, int size ) :: String
- leftPad( String str, int size, char padChar ) :: String
- leftPad( String str, int size, String padStr ) :: String
- length( String str ) :: int
- lowerCase( String str ) :: String
- lowerCase( String str, Locale locale ) :: String
- mid( String str, int pos, int len ) :: String
- normalizeSpace( String str ) :: String
- ordinalIndexOf( String str, String searchStr, int ordinal ) :: int
- overlay( String str, String overlay, int start, int end ) :: String
- remove( String str, char remove ) :: String
- remove( String str, String remove ) :: String
- removeEnd( String str, String remove ) :: String
- removeEndIgnoreCase( String str, String remove ) :: String
- removeStart( String str, String remove ) :: String
- removeStartIgnoreCase( String str, String remove ) :: String
- repeat( String str, int repeat ) :: String
- repeat( String str, String separator, int repeat ) :: String
- replace( String text, String searchString, String replacement ) :: String
- replace( String text, String searchString, String replacement, int max ) :: String
- replaceChars( String str, char searchChar, char replaceChar ) :: String
- replaceChars( String str, String searchChars, String replaceChars ) :: String
- replaceEach( String text, String[] searchList, String[] replacementList ) :: String
- replaceEachRepeatedly( String text, String[] searchList, String[] replacementList ) :: String
- replaceOnce( String text, String searchString, String replacement ) :: String
- reverse( String str ) :: String
- reverseDelimited( String str, char separatorChar ) :: String
- right( String str, int len ) :: String
- rightPad( String str, int size ) :: String
- rightPad( String str, int size, char padChar ) :: String
- rightPad( String str, int size, String padStr ) :: String
- split( String str ) :: String[]
- split( String str, char separatorChar ) :: String[]
- split( String str, String separatorChars ) :: String[]
- split( String str, String separatorChars, int max ) :: String[]
- splitByCharacterType( String str ) :: String[]
- splitByCharacterTypeCamelCase( String str ) :: String[]
- splitByWholeSeparator( String str, String separator ) :: String[]
- splitByWholeSeparator( String str, String separator, int max ) :: String[]
- splitByWholeSeparatorPreserveAllTokens( String str, String separator ) :: String[]
- splitByWholeSeparatorPreserveAllTokens( String str, String separator, int max ) :: String[]
- splitPreserveAllTokens( String str ) :: String[]
- splitPreserveAllTokens( String str, char separatorChar ) :: String[]
- splitPreserveAllTokens( String str, String separatorChars ) :: String[]
- splitPreserveAllTokens( String str, String separatorChars, int max ) :: String[]
- startsWith( String str, String prefix ) :: boolean
- startsWithAny( String string, String[] searchStrings ) :: boolean
- startsWithIgnoreCase( String str, String prefix ) :: boolean
- strip( String str ) :: String
- strip( String str, String stripChars ) :: String
- stripAll( String[] strs ) :: String[]
- stripAll( String[] strs, String stripChars ) :: String[]
- stripEnd( String str, String stripChars ) :: String
- stripStart( String str, String stripChars ) :: String
- stripToEmpty( String str ) :: String
- stripToNull( String str ) :: String
- substring( String str, int start ) :: String
- substring( String str, int start, int end ) :: String
- substringAfter( String str, String separator ) :: String
- substringAfterLast( String str, String separator ) :: String
- substringBefore( String str, String separator ) :: String
- substringBeforeLast( String str, String separator ) :: String
- substringBetween( String str, String tag ) :: String
- substringBetween( String str, String open, String close ) :: String
- substringsBetween( String str, String open, String close ) :: String[]
- swapCase( String str ) :: String
- trim( String str ) :: String
- trimToEmpty( String str ) :: String
- trimToNull( String str ) :: String
- uncapitalize( String str ) :: String
- upperCase( String str ) :: String
- upperCase( String str, Locale locale ) :: String
Groove sauce!
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
