@ file : Suppress (" unused ", Ġ" Member Visibility Can Be Private ") Ċ Ċ package Ġextensions Ċ Ċ // ĠExtract s Ġall Ġthe Ġdiscrete Ġintegers Ġfrom Ġa Ġstring . Ċ // ĠFor Ġexample , Ġ"# 1 3 7 2 Ġ@ Ġ 8 6 5 , 4 2 6 : Ġ 2 7 x 1 5 ". extract Ints () Ġ= Ġ[ 1 3 7 2 , Ġ 8 6 5 , Ġ 4 2 6 , Ġ 2 7 , Ġ 1 5 ]. Ċ fun ĠString . extract Ints (): ĠList < Int > Ġ{ ĊĠĠĠ Ġval Ġdelimiter Ġ= Ġ"/" ĊĊĠĠĠ Ġreturn Ġreplace (""" [^ -\ d ]+ """. to Regex (), Ġdelimiter ) ĊĠĠĠĠĠĠĠ Ġ. split ( delimiter ) ĊĠĠĠĠĠĠĠ Ġ. filter ( CharSequence :: isNotEmpty ) ĊĠĠĠĠĠĠĠ Ġ. map ( String :: toInt ) Ċ } Ċ Ċ // Ġhttps :// en . wikipedia . org / wiki / Ham ming _ distance Ċ fun ĠString . ham ming Distance From ( other : ĠString ): ĠInt Ġ{ ĊĠĠĠ Ġrequire ( length Ġ== Ġother . length ) Ġ{ Ġ" This Ġmethod Ġcan Ġonly Ġbe Ġcalled Ġusing Ġequal Ġlength Ġstrings ." Ġ} ĊĊĠĠĠ Ġreturn Ġzip ( other ). count Ġ{ Ġchar Pair Ġ-> Ġ! char Pair . values Match () Ġ} Ċ } Ċ Ċ fun ĠString . is An agram Of ( target : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġto CharArray (). sorted () Ġ== Ġtarget . toCharArray (). sorted () Ċ } Ċ Ċ fun ĠString . is Long (): ĠBoolean Ġ= Ġis Long ( radix Ġ= Ġ 1 0 ) Ċ Ċ fun ĠString . is Long ( radix : ĠInt ): ĠBoolean Ġ= Ġto Long OrNull ( radix ) Ġ!= Ġnull Ċ Ċ fun ĠString . is Pal indrome ( ignore Whitespace : ĠBoolean Ġ= Ġfalse ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġforward Ġ= Ġif Ġ( ignore Whitespace ) Ġreplace ( Regex ("[ ^ a - zA - Z ]+ "), Ġ"") Ġelse Ġthis ĊĠĠĠ Ġval Ġreverse Ġ= Ġforward . reversed () ĊĠĠĠ Ġreturn Ġforward Ġ== Ġreverse Ċ } Ċ Ċ // ĠRot ates Ġa ĠString Ġto Ġthe Ġleft . Ċ fun ĠString . rotate ( steps : ĠInt ): ĠString Ġ{ ĊĠĠĠ Ġval Ġn Steps Ġ= Ġsteps . non Negative Rem ( length ) ĊĠĠĠ Ġreturn Ġ"${ take Last ( length Ġ- Ġn Steps )} ${ take ( n Steps )}" Ċ } Ċ Ċ fun ĠString . swap ( index 1 : ĠInt , Ġindex 2 : ĠInt ): ĠString Ġ{ ĊĠĠĠ Ġval Ġchars Ġ= Ġto CharArray () ĊĠĠĠ Ġval Ġchar 1 Ġ= Ġchars [ index 1 ] ĊĠĠĠ Ġval Ġchar 2 Ġ= Ġchars [ index 2 ] ĊĠĠĠ Ġchars [ index 1 ] Ġ= Ġchar 2 ĊĠĠĠ Ġchars [ index 2 ] Ġ= Ġchar 1 ĊĠĠĠ Ġreturn ĠString ( chars ) Ċ } Ċ