@ file : Suppress (" unused ", Ġ" NOTH ING _ TO _ INLINE ") Ċ Ċ package Ġcs ense . kotlin . extensions . primitives Ċ Ċ import Ġcs ense . kotlin .* Ċ import Ġcs ense . kotlin . annotations . numbers .* Ċ import Ġcs ense . kotlin . extensions .* Ċ import Ġcs ense . kotlin . extensions . collections . generic .* Ċ Ċ // region ĠSearch ing Ġ/ Ġfind Ċ /** Ċ Ġ* ĠFinds Ġall Ġindices Ġof Ġthe Ġgiven Ġsubstring Ċ Ġ* Ġ@ receiver Ġ[ String ] ĠThe Ġstring Ġwe Ġare Ġsearching Ġin Ċ Ġ* Ġ@ param Ġsub String Ġ[ String ] Ġthe Ġsubstring Ġwe Ġare Ġsearching Ġfor Ċ Ġ* Ġ@ param Ġsearch By Word Ġ[ Boolean ] Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ġif Ġwe Ġshould Ġignore Ġc asing Ċ Ġ* Ġ@ return Ġ[ Set ]< [ Int ]> Ġa Ġset Ġof Ġindices Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . findAll Of ( ĊĠĠĠ Ġsub String : ĠString , ĊĠĠĠ Ġsearch By Word : ĠBoolean , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠSet < @ Int Limit ( from Ġ= Ġ 0 ) ĠInt > Ġ{ ĊĠĠĠ Ġreturn Ġmap Each Matching ( sub String , Ġsearch By Word , Ġignore Case ) Ġ{ Ġstart Ġ-> Ġstart Ġ}. toSet () Ċ } Ċ // TODO Ġconsider Ġmoving .. Ċ /** Ċ Ġ* ĠMaps Ġeach Ġmatching Ġoccurrence Ġof Ġa Ġsubstring Ċ Ġ* Ġ@ receiver Ġ[ String ] Ġthe Ġstring Ġto Ġsearch Ġin Ċ Ġ* Ġ@ param Ġsub String Ġ[ String ] Ġthe Ġstring Ġwe Ġare Ġsearching Ġfor Ċ Ġ* Ġ@ param Ġsearch By Word Ġ[ Boolean ] Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ġwhenever Ġwe Ġshould Ġignore Ġc asing Ċ Ġ* Ġ@ param Ġmapper Ġ[ Function 1 ]< [ Int ], ĠU > ĠMaps Ġthe Ġgiven Ġindex Ġto Ġa Ġgiven Ġvalue Ċ Ġ* Ġ@ return Ġ[ List ]< U > Ġthe Ġresulting Ġlist Ġby Ġmapping Ġall Ġthe Ġfound Ġoccurrences Ġof Ġ[ sub String ] Ċ Ġ*/ Ċ public Ġinline Ġfun Ġ< U > ĠString . map Each Matching ( ĊĠĠĠ Ġsub String : ĠString , ĊĠĠĠ Ġsearch By Word : ĠBoolean , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġmapper : Ġ( index : ĠInt ) Ġ-> ĠU Ċ ): ĠList < U > Ġ{ ĊĠĠĠ Ġif Ġ( sub String . isEmpty () Ġ|| Ġthis . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġempty List () ĊĠĠĠ Ġ} ĊĠĠĠ Ġvar ĠcurrentIndex Ġ= Ġ 0 ĊĠĠĠ Ġval Ġappend Length Ġ= Ġsearch By Word . map ( sub String . length , Ġ 1 ) ĊĠĠĠ Ġvar Ġnext Ġ= Ġthis . indexOf OrNull ( sub String , ĠcurrentIndex , Ġignore Case ) ĊĠĠĠ Ġval Ġresult Ġ= Ġmutable ListOf < U >() ĊĠĠĠ Ġwhile Ġ( next Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult . add ( mapper ( next )) ĊĠĠĠĠĠĠĠ ĠcurrentIndex Ġ= Ġnext Ġ+ Ġappend Length ĊĠĠĠĠĠĠĠ Ġnext Ġ= Ġthis . indexOf OrNull ( sub String , ĠcurrentIndex , Ġignore Case ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ // endregion Ċ Ċ // region ĠRe pl acing Ċ /** Ċ Ġ* ĠRe places Ġa Ġvalue Ġgiven Ġa Ġcriteria . Ġif Ġthe Ġcondition Ġis Ġtrue , Ġthe Ġreplace Ġis Ġcalled Ġwith Ġthe Ġvalue Ċ Ġ* Ġotherwise Ġthis Ġstring Ġis Ġreturned Ġas Ġis . Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġcondition Ġ[ Boolean ] Ċ Ġ* Ġ@ param Ġto Replace Ġ[ String ] Ċ Ġ* Ġ@ param ĠnewValue Ġ[ String ] Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ċ Ġ* Ġ@ return Ġ[ String ] Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . replace If ( ĊĠĠĠ Ġcondition : ĠBoolean , ĊĠĠĠ Ġto Replace : ĠString , ĊĠĠĠ ĠnewValue : ĠString , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( condition ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . replace ( to Replace , ĠnewValue , Ġignore Case ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġthis ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠRe places Ġa Ġvalue Ġgiven Ġa Ġcriteria . Ġif Ġthe Ġcondition Ġis Ġtrue , Ġthe Ġif True Value Ġis Ġused Ġfor Ġthe Ġreplacement Ċ Ġ* Ġif Ġthe Ġcondition Ġis Ġfalse , Ġthe Ġif False Value Ġis Ġused . Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġcondition Ġ[ Boolean ] Ċ Ġ* Ġ@ param Ġto Replace Ġ[ String ] Ċ Ġ* Ġ@ param Ġif True Value Ġ[ String ] Ċ Ġ* Ġ@ param Ġif False Value Ġ[ String ] Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ċ Ġ* Ġ@ return Ġ[ String ] Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . replace If Or ( ĊĠĠĠ Ġcondition : ĠBoolean , ĊĠĠĠ Ġto Replace : ĠString , ĊĠĠĠ Ġif True Value : ĠString , ĊĠĠĠ Ġif False Value : ĠString , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠString Ġ{ ĊĠĠĠ Ġval Ġreplacement Ġ= Ġcondition . map ( if True Value , Ġif False Value ) ĊĠĠĠ Ġreturn Ġthis . replace ( to Replace , Ġreplacement , Ġignore Case ) Ċ } Ċ Ċ /** Ċ Ġ* ĠRe places Ġa Ġvalue Ġgiven Ġa Ġcriteria . Ġif Ġthe Ġcondition Ġis Ġtrue , Ġthe Ġif True Value Ġis Ġused Ġfor Ġthe Ġreplacement Ċ Ġ* Ġif Ġthe Ġcondition Ġis Ġfalse , Ġthe Ġif False Value Ġis Ġused . Ġl az ily Ġevaluates Ġthe Ġvalues . Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġcondition Ġ[ Boolean ] Ċ Ġ* Ġ@ param Ġto Replace Ġ[ String ] Ċ Ġ* Ġ@ param Ġif True Value Ġ[ Empty Function Result ]< [ String ]> Ċ Ġ* Ġ@ param Ġif False Value Ġ[ Empty Function Result ]< [ String ]> Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ċ Ġ* Ġ@ return Ġ[ String ] Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . replace If Or ( ĊĠĠĠ Ġcondition : ĠBoolean , ĊĠĠĠ Ġto Replace : ĠString , ĊĠĠĠ Ġcross inline Ġif True Value : ĠEmpty Function Result < String >, ĊĠĠĠ Ġcross inline Ġif False Value : ĠEmpty Function Result < String >, ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠString Ġ{ ĊĠĠĠ Ġval Ġreplacement Ġ= Ġcondition . map Lazy ( if True Value , Ġif False Value ) ĊĠĠĠ Ġreturn Ġthis . replace ( to Replace , Ġreplacement , Ġignore Case ) Ċ } Ċ // endregion Ċ Ċ // region Ġcontains Ġ/ Ġstart With Ġqueries Ċ /** Ċ Ġ* ĠReturns Ġwhenever Ġthis Ġstring Ġends Ġwith Ġat Ġleast Ġone Ġof Ġthe Ġgiven Ġcollection Ċ Ġ* Ġ@ receiver ĠC Ċ Ġ* Ġ@ param Ġcollection Ġ[ Collection ]< C > Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . endsWith Any ( ĊĠĠĠ Ġcollection : ĠCollection < String >, ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġcollection . any Ġ{ Ġthis . endsWith ( it , Ġignore Case ) Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġwhenever Ġthis Ġstring Ġends Ġwith Ġat Ġleast Ġone Ġof Ġthe Ġgiven ĠArray Ċ Ġ* Ġ@ receiver Ġ[ String ] Ġthe Ġstring Ġto Ġask Ġif Ġit Ġends Ġwith Ġany Ġof Ġ[ strings ] Ċ Ġ* Ġ@ param Ġstrings Ġ[ Array ]< out ĠC > Ġthe Ġstrings Ġwe Ġwant Ġto Ġtell Ġif Ġthis Ġends Ġwith Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ċ Ġ* Ġ@ time complexity Ġo ( n * m ) Ġwhere Ġn Ġis Ġthis Ġstrings Ġlength Ġand Ġm Ġis Ġthe Ġsize Ġof Ġall Ġthe Ġany Ġstrings Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . endsWith Any ( ĊĠĠĠ Ġvar arg Ġstrings : ĠString , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġstrings . any Ġ{ Ġthis . endsWith ( it , Ġignore Case ) Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġwhenever Ġthis Ġstring Ġstarts Ġwith Ġat Ġleast Ġone Ġof Ġthe Ġgiven Ġcollection Ċ Ġ* Ġ@ receiver ĠC Ċ Ġ* Ġ@ param Ġstrings Ġ[ Array ]< out ĠC > Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . startsWith Any ( ĊĠĠĠ Ġvar arg Ġstrings : ĠString , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġstrings . any Ġ{ Ġthis . startsWith ( it , Ġignore Case ) Ġ} Ċ Ċ /** Ċ Ġ* ĠReturns Ġwhenever Ġthis Ġstring Ġstarts Ġwith Ġat Ġleast Ġone Ġof Ġthe Ġgiven Ġcollection Ċ Ġ* Ġ@ receiver ĠC Ċ Ġ* Ġ@ param Ġcollection Ġ[ Collection ]< C > Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . startsWith Any ( ĊĠĠĠ Ġcollection : ĠCollection < String >, ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġcollection . any Ġ{ Ġthis . startsWith ( it , Ġignore Case ) Ġ} Ċ // endregion ĊĊ Ċ // region ĠAction Ġon Ġstate Ċ /** Ċ Ġ* ĠO pp osite Ġof Ġ"[ if Empty ]" Ċ Ġ* Ġif Ġthis Ġ[ String ] Ġis Ġnot Ġempty Ġ, Ġexecutes Ġthe Ġmethod Ġand Ġreturns Ġthat Ċ Ġ* Ġif Ġit Ġis Ġempty , Ġthen Ġit Ġreturns Ġ" this ". Ċ Ġ* Ġ@ receiver ĠC Ċ Ġ* Ġ@ param Ġaction Ġ[ Function 1 ]< C , ĠC > Ċ Ġ* Ġ@ return ĠC Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . if NotEmpty ( action : ĠFunction 1 < String , ĠString >): ĠString Ġ= Ġif Ġ( isEmpty ()) Ġ{ ĊĠĠĠ Ġthis Ċ } Ġelse Ġ{ ĊĠĠĠ Ġaction ( this ) Ċ } Ċ Ċ /** Ċ Ġ* ĠO pp osite Ġof Ġ"[ if Blank ]" Ċ Ġ* Ġif Ġthis Ġstring Ġis Ġnot Ġblank , Ġexecutes Ġthe Ġmethod Ġand Ġreturns Ġthat Ċ Ġ* Ġif Ġit Ġis Ġblank , Ġthen Ġit Ġreturns Ġthis . Ċ Ġ* Ġ@ receiver ĠC Ċ Ġ* Ġ@ param Ġaction Ġ[ Function 1 ]< C , ĠC > Ċ Ġ* Ġ@ return ĠC Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . if NotBlank ( action : ĠFunction 1 < String , ĠString >): ĠString Ġ= Ġif Ġ( isBlank ()) Ġ{ ĊĠĠĠ Ġthis Ċ } Ġelse Ġ{ ĊĠĠĠ Ġaction ( this ) Ċ } Ċ // endregion Ċ Ċ // region ĠSk ipping Ġfunctions Ċ Ċ /** Ċ Ġ* ĠSk ips Ġthe Ġgiven Ġpart Ġif Ġit Ġstarts Ġwith Ġit . Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġprefix Ġ[ String ] Ġthe Ġprefix Ġwe Ġare Ġlooking Ġfor Ġ( and Ġthe Ġpart Ġthat Ġwill Ġbe Ġskipped Ġiff Ġthere . Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ġhow Ġwe Ġshould Ġcompare Ġprefix Ġwith Ġthis Ġstring Ċ Ġ* Ġ@ return Ġ[ String ] Ġthe Ġresulting Ġstring , Ġeither Ġthe Ġoriginal Ġor Ġsubstring Ġby Ġthe Ġprefix Ġlength Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . skip StartsWith ( ĊĠĠĠ Ġprefix : ĠString , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠString Ġ{ ĊĠĠĠ Ġval Ġstart sWith Ġ= Ġstart sWith ( prefix , Ġignore Case ) ĊĠĠĠ Ġreturn Ġstart sWith . map Lazy ( ĊĠĠĠĠĠĠĠ Ġif True Ġ= Ġ{ Ġsubstring ( prefix . length ) Ġ}, ĊĠĠĠĠĠĠĠ Ġif False Ġ= Ġ{ Ġthis Ġ}) Ċ } Ċ // endregion Ċ Ċ // region Ġforeach Ġgeneric ( s ) Ċ /** Ċ Ġ* ĠIter ates Ġover Ġ 2 Ġcharacters Ġat Ġones ; Ġonly Ġget Ġexecuted Ġiff Ġthe Ġlength Ġis Ġa Ġfactor Ġof Ġ 2 Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġaction Ġ( first : Ġ[ Char ], Ġsecond : Ġ[ Char ]) Ġ-> ĠUnit Ċ Ġ*/ Ċ @ Deprecated (" will Ġbe Ġremoved ") Ċ public Ġinline Ġfun ĠString . foreach 2 ( action : ĠFunction 2 Unit < Char , ĠChar >): ĠUnit Ġ= ĊĠĠĠ ĠGeneric Collection Extensions . forEach 2 ( length , Ġthis :: get , Ġaction ) Ċ Ċ /** Ċ Ġ* ĠIter ates Ġover Ġ 2 Ġcharacters Ġat Ġones Ġwith Ġthe Ġindex ( first ) Ġas Ġwell ; Ġonly Ġget Ġexecuted Ġiff Ġthe Ġlength Ġis Ġa Ġfactor Ġof Ġ 2 Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġaction Ġ( first : Ġ[ Char ], Ġsecond : Ġ[ Char ]) Ġ-> ĠUnit Ċ Ġ*/ Ċ @ Deprecated (" will Ġbe Ġremoved ") Ċ public Ġinline Ġfun ĠString . foreach 2 Indexed ( action : ĠFunction 2 Indexed Unit < Char , ĠChar >): ĠUnit Ġ= ĊĠĠĠ ĠGeneric Collection Extensions . forEach 2 Indexed ( length , Ġthis :: get , Ġaction ) Ċ // endregion Ċ Ċ // region ĠHex Ġconverting Ċ /** Ċ Ġ* ĠThe Ġopposite Ġof Ġ[ cs ense . kotlin . extensions . collections . array . to HexString ] Ġ, Ġso Ġtakes Ġa Ġhex Ġstring Ġ( eg Ġ" 0 x 2 0 ") Ġand Ġconverts Ġit Ġto Ġa Ġbyte Ġarray Ġof Ġthat Ċ Ġ* Ġif Ġany Ġerror Ġis Ġfound Ġduring Ġthe Ġ" de serialization , Ġnull Ġwill Ġbe Ġreturned . Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ return Ġ[ Short Array ]? Ġsince Ġ[ U Byte ] s Ġare Ġstill Ġexperimental , Ġ[ Short ] s Ġare Ġused Ġto Ġmake Ġsure Ġthe Ġsize Ġ" is Ġok " Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . from Hex StringTo ByteArray (): ĠShort Array ? Ġ{ ĊĠĠĠ Ġ// strip Ġprefix Ġiff Ġasked Ġto ĊĠĠĠ Ġif Ġ( length . is Odd Ġ|| ĠisEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// we Ġhave Ġthe Ġhex Ġprefix Ġiff Ġit Ġstarts Ġwith Ġ" 0 x ". Ġstrip Ġthat Ġiff Ġnecessary ĊĠĠĠ Ġval Ġstring Ġ= Ġskip StartsWith (" 0 x ", Ġtrue ) ĊĠĠĠ Ġval Ġresult Ġ= ĠShort Array ( string . length Ġ/ Ġ 2 ) ĊĠĠĠ Ġstring . foreach 2 Indexed Ġ{ Ġindex : ĠInt , Ġfirst : ĠChar , Ġsecond : ĠChar Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġshort Value Ġ= Ġhex Chars To Value ( first , Ġsecond ) Ġ?: Ġreturn @ from Hex StringTo ByteArray Ġnull ĊĠĠĠĠĠĠĠ Ġresult [ index Ġ/ Ġ 2 ] Ġ= Ġshort Value ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ // endregion ĊĊ Ċ // region ĠDoes Ġnot Ġstarts Ġwith ĊĊ Ċ /** Ċ Ġ* ĠTell s Ġif Ġthis Ġstring Ġdoes Ġnot Ġstart Ġwith Ġthe Ġgiven Ġ[ prefix ] Ċ Ġ* Ġ@ receiver Ġ[ String ] Ġthe Ġstring Ġto Ġtest Ċ Ġ* Ġ@ param Ġprefix Ġ[ CharSequence ] Ġthe Ġvalue Ġwe Ġwant Ġto Ġknow Ġif Ġthe Ġreceiver Ġstarts Ġwith Ġor Ġnot Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ġwhenever Ġwe Ġshould Ġignore Ġc asing Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ġtrue Ġif Ġthis Ġhas Ġa Ġdifferent Ġstart Ġfrom Ġ[ prefix ] Ġfalse Ġif Ġnot Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . does Not StartsWith ( ĊĠĠĠ Ġprefix : ĠCharSequence , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġ! startsWith ( prefix , Ġignore Case ) Ċ Ċ /** Ċ Ġ* ĠTell s Ġif Ġthis Ġstring Ġdoes Ġnot Ġstart Ġwith Ġthe Ġgiven Ġ[ prefix ] Ċ Ġ* Ġ@ receiver Ġ[ String ] Ġthe Ġstring Ġto Ġtest Ċ Ġ* Ġ@ param Ġprefix Ġ[ Char ] Ġthe Ġ[ Char ] Ġwe Ġwant Ġto Ġknow Ġif Ġthe Ġreceiver Ġstarts Ġwith Ġor Ġnot Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ġwhenever Ġwe Ġshould Ġignore Ġc asing Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ġtrue Ġif Ġthis Ġhas Ġa Ġdifferent Ġstart Ġfrom Ġ[ prefix ] Ġfalse Ġif Ġnot Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . does Not StartsWith ( ĊĠĠĠ Ġprefix : ĠChar , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġ! startsWith ( prefix , Ġignore Case ) ĊĊ Ċ /** Ċ Ġ* ĠTell s Ġif Ġthis Ġstring Ġstarts Ġwith Ġsomething Ġdifferent Ġthan Ġthe Ġgiven Ġor Ġnot Ċ Ġ* Ġ@ receiver Ġ[ String ] Ġthe Ġstring Ġto Ġtest Ċ Ġ* Ġ@ param Ġsub Strings Ġ[ Array ]< out Ġ[ String ]> Ġthe Ġitems Ġto Ġtest Ġif Ġthe Ġreceiver Ġstarts Ġwith Ġor Ġnot Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ġwhenever Ġwe Ġshould Ġignore Ġc asing Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ġtrue Ġif Ġthis Ġstring Ġstarts Ġwith Ġsomething Ġdifferent Ġfrom Ġany Ġof Ġthe Ġgiven Ġ[ sub Strings ] Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . does Not StartsWith Any ( ĊĠĠĠ Ġvar arg Ġsub Strings : ĠString , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġ! startsWith Any (* sub Strings , Ġignore Case Ġ= Ġignore Case ) Ċ Ċ /** Ċ Ġ* ĠTell s Ġif Ġthis Ġstring Ġstarts Ġwith Ġsomething Ġdifferent Ġthan Ġthe Ġgiven Ġor Ġnot Ċ Ġ* Ġ@ receiver Ġ[ String ] Ġthe Ġstring Ġto Ġtest Ċ Ġ* Ġ@ param Ġitems Ġ[ Collection ]< [ String ]> Ġthe Ġitems Ġto Ġtest Ġif Ġthe Ġreceiver Ġstarts Ġwith Ġor Ġnot Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ġwhenever Ġwe Ġshould Ġignore Ġc asing Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ġtrue Ġif Ġthis Ġstring Ġstarts Ġwith Ġsomething Ġdifferent Ġfrom Ġany Ġof Ġthe Ġgiven Ġ[ items ] Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . does Not StartsWith Any ( ĊĠĠĠ Ġitems : ĠCollection < String >, ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġ! startsWith Any ( items , Ġignore Case ) ĊĊ Ċ // endregion ĊĊ Ċ // region Ġdoes Ġnot Ġends Ġwith Ċ /** Ċ Ġ* ĠTell s Ġif Ġthis Ġstring Ġends Ġwith Ġsomething Ġdifferent Ġthan Ġthe Ġgiven Ġ[ sequence ] Ġor Ġnot Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġsequence Ġ[ String ] Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . does Not EndsWith ( ĊĠĠĠ Ġsequence : ĠCharSequence , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġ! endsWith ( sequence , Ġignore Case ) Ċ Ċ public Ġinline Ġfun ĠString . does Not EndsWith ( ĊĠĠĠ Ġchar : ĠChar , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġ! endsWith ( char , Ġignore Case ) Ċ Ċ public Ġinline Ġfun ĠString . does Not EndsWith Any ( ĊĠĠĠ Ġvar arg Ġsub Strings : ĠString , ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġ! endsWith Any (* sub Strings , Ġignore Case Ġ= Ġignore Case ) Ċ Ċ public Ġinline Ġfun ĠString . does Not EndsWith Any ( ĊĠĠĠ Ġitems : ĠCollection < String >, ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= ĊĠĠĠ Ġ! endsWith Any ( items , Ġignore Case ) Ċ // endregion Ċ Ċ // region ĠContains Ġany Ġed itions Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġstrings Ġ[ Array ]< out Ġ[ String ]> Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ġ Ġ` true ` Ġto Ġignore Ġcharacter Ġcase Ġwhen Ġcomparing Ġstrings . ĠBy Ġdefault Ġ` false `. Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ċ Ġ* Ġ@ time complexity ĠO ( n * m ) Ġwhere Ġn Ġis Ġthe Ġlength Ġof Ġthis Ġstring , Ġand Ġm Ġis Ġthe Ġsize Ġof Ġstrings Ġ( times Ġthe Ġaverage Ġlength ) Ċ Ġ* ĠThis Ġwill Ġbe Ġimproved Ġin Ġlater Ġversions Ġto Ġuse Ġa Ġbetter Ġalgorithm Ġfor Ġlarger Ġdata Ġsets Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . contains Any ( var arg Ġstrings : ĠString , Ġignore Case : ĠBoolean Ġ= Ġfalse ): ĠBoolean Ġ= Ġstrings . any Ġ{ ĊĠĠĠ Ġthis . contains ( it , Ġignore Case ) Ċ } Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġcollection Ġ[ Iterable ]< [ String ]> Ċ Ġ* Ġ@ param Ġignore Case Ġ[ Boolean ] Ġ` true ` Ġto Ġignore Ġcharacter Ġcase Ġwhen Ġcomparing Ġstrings . ĠBy Ġdefault Ġ` false `. Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ċ Ġ* Ġ@ time complexity ĠO ( n * m ) Ġwhere Ġn Ġis Ġthe Ġlength Ġof Ġthis Ġstring , Ġand Ġm Ġis Ġthe Ġsize Ġof Ġstrings Ġ( times Ġthe Ġaverage Ġlength ) Ċ Ġ* ĠThis Ġwill Ġbe Ġimproved Ġin Ġlater Ġversions Ġto Ġuse Ġa Ġbetter Ġalgorithm Ġfor Ġlarger Ġdata Ġsets Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . contains Any ( ĊĠĠĠ Ġcollection : ĠIterable < String >, ĊĠĠĠ Ġignore Case : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= Ġcollection . any Ġ{ ĊĠĠĠ Ġthis . contains ( it , Ġignore Case ) Ċ } Ċ // endregion Ċ Ċ /** Ċ Ġ* ĠTell s Ġif Ġthis Ġ[ String ] Ġsole ly Ġconsists Ġof Ġuppercase Ġcharacters Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ġtrue Ġif Ġall Ġchars Ġare Ġupper Ġcase Ġ( if Ġempty , Ġreturns Ġfalse ) Ċ Ġ* Ġ@ time complexity ĠO ( n ) Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . is Only UpperCase Letters ( ĊĠĠĠ ĠIgnore None Letters : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= Ġwhen Ġ{ ĊĠĠĠ ĠisEmpty () Ġ-> Ġfalse ĊĠĠĠ ĠIgnore None Letters Ġ-> Ġnone ( Char :: is LowerCase Letter ) ĊĠĠĠ Ġelse Ġ-> Ġall ( Char :: is UpperCase Letter ) Ċ } ĊĊ Ċ /** Ċ Ġ* ĠTell s Ġif Ġthis Ġ[ String ] Ġsole ly Ġconsists Ġof Ġlowercase Ġcharacters Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ġtrue Ġif Ġeither Ġthe Ġstring Ġis Ġempty Ġor Ġall Ġchars Ġare Ġlowercase Ċ Ġ* Ġ@ time complexity ĠO ( n ) Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . is Only LowerCase Letters ( ĊĠĠĠ ĠIgnore None Letters : ĠBoolean Ġ= Ġfalse Ċ ): ĠBoolean Ġ= Ġwhen Ġ{ ĊĠĠĠ ĠisEmpty () Ġ-> Ġfalse ĊĠĠĠ ĠIgnore None Letters Ġ-> Ġnone ( Char :: is UpperCase Letter ) ĊĠĠĠ Ġelse Ġ-> Ġall ( Char :: is LowerCase Letter ) Ċ } Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġaction Ġ[ Function 1 ]< [ Char ]> Ċ Ġ* Ġ@ time complexity ĠO ( n ) Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . forEach Back wards ( ĊĠĠĠ Ġaction : ĠFunction Unit < Char > Ċ ): ĠUnit Ġ= ĊĠĠĠ ĠGeneric Collection Extensions . forEach Back wards ( count (), Ġthis :: elementAt , Ġaction ) Ċ Ċ /** Ċ Ġ* Ċ Ġ* Ġ@ receiver Ġ[ String ] Ċ Ġ* Ġ@ param Ġaction Ġ[ Function 2 ]< [ Int ], Ġ[ Char ]> Ċ Ġ* Ġ@ time complexity ĠO ( n ) Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . forEach Back wards Indexed ( ĊĠĠĠ Ġaction : ĠFunction 2 Unit < @ Int Limit ( from Ġ= Ġ 0 ) ĠInt , ĠChar > Ċ ): ĠUnit Ġ= ĊĠĠĠ ĠGeneric Collection Extensions . forEach Back wards Indexed ( count (), Ġthis :: elementAt , Ġaction ) Ċ Ċ /** Ċ Ġ* ĠTell s Ġif Ġthis Ġis Ġa Ġnew Ġline Ġ( either Ġwindows Ġor Ġunix ) Ċ Ġ* Ġ@ receiver Ġ[ String ] Ġthe Ġstring Ġto Ġtest Ċ Ġ* Ġ@ return Ġ[ Boolean ] Ġtrue Ġif Ġthis Ġstring Ġis Ġexactly Ġa Ġnewline , Ġfalse Ġotherwise Ċ Ġ* Ġsee Ċ Ġ* Ġhttps :// en . wikipedia . org / wiki / New line # Representation Ċ Ġ*/ Ċ public Ġinline Ġfun ĠString . is NewLine (): ĠBoolean Ġ= Ġwhen Ġ( this . length ) Ġ{ ĊĠĠĠĠ 1 Ġ-> Ġthis Ġ== Ġ"\ n " Ġ// unix ĊĠĠĠĠ 2 Ġ-> Ġthis Ġ== Ġ"\ r \ n " Ġ// Ġwindows ĊĠĠĠ Ġelse Ġ-> Ġfalse Ċ } Ċ