package Ġcom . sp iel berg . common ext Ċ Ċ import Ġandroidx . collection . Simple Array Map Ċ import Ġcom . sp iel berg . common ext . constant . Regex Constants Ċ import Ġjava . util .* Ċ import Ġjava . util . regex . Pattern ĊĊ Ċ private Ġval ĠC ITY _ MAP : ĠSimple Array Map < String , ĠString > Ġ= ĠSimple Array Map () ĊĊ Ċ //////////////////////////////////////////////////////////////////////// /// Ċ // ĠIf Ġu Ġwant Ġmore Ġplease Ġvisit Ġhttp :// tout iao . com / i 6 2 3 1 6 7 8 5 4 8 5 2 0 7 3 1 1 3 7 Ċ //////////////////////////////////////////////////////////////////////// /// Ċ Ċ //////////////////////////////////////////////////////////////////////// /// Ċ // ĠIf Ġu Ġwant Ġmore Ġplease Ġvisit Ġhttp :// tout iao . com / i 6 2 3 1 6 7 8 5 4 8 5 2 0 7 3 1 1 3 7 Ċ //////////////////////////////////////////////////////////////////////// /// Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġsimple Ġmobile . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis Mobile Simple ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ MOB ILE _ SIMPLE , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġexact Ġmobile . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis Mobile Exact ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Mobile Exact ( input , Ġnull ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġexact Ġmobile . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠĠĠĠĠĠ ĠThe Ġinput . Ċ Ġ* Ġ@ param Ġnew Segments ĠThe Ġnew Ġsegments Ġof Ġmobile Ġnumber . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis Mobile Exact ( input : ĠCharSequence ?, Ġnew Segments : ĠList < String >? ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġmatch Ġ= Ġis Match ( Regex Constants . REGEX _ MOB ILE _ EX ACT , Ġinput ) ĊĠĠĠ Ġif Ġ( match ) Ġreturn Ġtrue ĊĠĠĠ Ġif Ġ( new Segments Ġ== Ġnull ) Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ( input Ġ== Ġnull Ġ|| Ġinput . length Ġ!= Ġ 1 1 ) Ġreturn Ġfalse ĊĠĠĠ Ġval Ġcontent Ġ= Ġinput . toString () ĊĠĠĠ Ġfor Ġ( c Ġin Ġcontent . toCharArray ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Character . is Digit ( c )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfor Ġ( new Segment Ġin Ġnew Segments ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( content . startsWith ( new Segment )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġtele phone Ġnumber . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis Tel ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ TEL , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġid Ġcard Ġnumber Ġwhich Ġlength Ġis Ġ 1 5 . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis ID Card 1 5 ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ ID _ CARD 1 5 , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġid Ġcard Ġnumber Ġwhich Ġlength Ġis Ġ 1 8 . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis ID Card 1 8 ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ ID _ CARD 1 8 , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġexact Ġid Ġcard Ġnumber Ġwhich Ġlength Ġis Ġ 1 8 . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis ID Card 1 8 Exact ( input : ĠCharSequence ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( is ID Card 1 8 ( input )) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfactor Ġ= Ġint ArrayOf ( 7 , Ġ 9 , Ġ 1 0 , Ġ 5 , Ġ 8 , Ġ 4 , Ġ 2 , Ġ 1 , Ġ 6 , Ġ 3 , Ġ 7 , Ġ 9 , Ġ 1 0 , Ġ 5 , Ġ 8 , Ġ 4 , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġsuffix Ġ= Ġchar ArrayOf (' 1 ', Ġ' 0 ', Ġ' X ', Ġ' 9 ', Ġ' 8 ', Ġ' 7 ', Ġ' 6 ', Ġ' 5 ', Ġ' 4 ', Ġ' 3 ', Ġ' 2 ') ĊĠĠĠĠĠĠĠ Ġif Ġ( C ITY _ MAP . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 1 1 ", Ġ" åĮĹäº¬ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 1 2 ", Ġ" å¤© æ´ ¥ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 1 3 ", Ġ" æ²³ åĮĹ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 1 4 ", Ġ" å±± è¥¿ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 1 5 ", Ġ" åĨħ èĴ Ļ åı¤ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 2 1 ", Ġ" è¾ ½ å®ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 2 2 ", Ġ" åĲ ī æŀĹ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 2 3 ", Ġ" é»ĳ é¾Ļ æ±Ł ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 3 1 ", Ġ" ä¸Ĭ æµ· ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 3 2 ", Ġ" æ±Ł èĭı ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 3 3 ", Ġ" æµ Ļ æ±Ł ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 3 4 ", Ġ" å®ī å¾ ½ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 3 5 ", Ġ" ç¦ı å»º ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 3 6 ", Ġ" æ±Ł è¥¿ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 3 7 ", Ġ" å±± ä¸ľ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 4 1 ", Ġ" æ²³ åįĹ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 4 2 ", Ġ" æ¹ ĸ åĮĹ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 4 3 ", Ġ" æ¹ ĸ åįĹ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 4 4 ", Ġ" å¹¿ ä¸ľ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 4 5 ", Ġ" å¹¿ è¥¿ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 4 6 ", Ġ" æµ· åįĹ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 5 0 ", Ġ" éĩį åº Ĩ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 5 1 ", Ġ" åĽĽ å·Ŀ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 5 2 ", Ġ" è´ µ å·ŀ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 5 3 ", Ġ" äºĳ åįĹ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 5 4 ", Ġ" è¥¿ èĹı ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 6 1 ", Ġ" éĻ ķ è¥¿ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 6 2 ", Ġ" çĶ ĺ èĤ ĥ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 6 3 ", Ġ" éĿĴ æµ· ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 6 4 ", Ġ" å®ģ å¤ ı ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 6 5 ", Ġ" æĸ° çĸ Ĩ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 7 1 ", Ġ" åı° æ¹ ¾ èĢģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 8 1 ", Ġ" é¦Ļ æ¸¯ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 8 2 ", Ġ" æ ¾ ³ éĹ¨ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 8 3 ", Ġ" åı° æ¹ ¾ æĸ° ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC ITY _ MAP . put (" 9 1 ", Ġ" åĽ½ å¤ĸ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( C ITY _ MAP . get ( input . sub Sequence ( 0 , Ġ 2 ). toString ()) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġweight Sum Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 1 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweight Sum Ġ+= Ġ( input [ i ] Ġ- Ġ' 0 ') Ġ* Ġfactor [ i ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Card Mod Ġ= Ġweight Sum Ġ% Ġ 1 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Card Last Ġ= Ġinput [ 1 7 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġid Card Last Ġ== Ġsuffix [ id Card Mod ] ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġemail . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis Email ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ EMAIL , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġurl . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis URL ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ URL , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof ĠChinese Ġcharacter . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis Zh ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ ZH , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġusername . Ċ Ġ* Ċ Ġ* Ġscope Ġfor Ġ" a - z ", Ġ" A - Z ", Ġ" 0 - 9 ", Ġ"_ ", Ġ" Chinese Ġcharacter " Ċ Ġ* Ċ Ġ* Ġcan 't Ġend Ġwith Ġ"_" Ċ Ġ* Ċ Ġ* Ġlength Ġis Ġbetween Ġ 6 Ġto Ġ 2 0 . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis Username ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ USERNAME , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġdate Ġwhich Ġpattern Ġis Ġ" yyyy - MM - dd ". Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis Date ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ DATE , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġregex Ġof Ġip Ġaddress . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis IP ( input : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Match ( Regex Constants . REGEX _ IP , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġwhether Ġinput Ġmatches Ġthe Ġregex . Ċ Ġ* Ċ Ġ* Ġ@ param Ġregex ĠThe Ġregex . Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġ` true `: Ġyes < br ></ br >` false `: Ġno Ċ Ġ*/ Ċ fun Ġis Match ( regex : ĠString , Ġinput : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġinput Ġ!= Ġnull Ġ&& Ġinput . isNotEmpty () Ġ&& ĠPattern . matches ( regex , Ġinput ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturn Ġthe Ġlist Ġof Ġinput Ġmatches Ġthe Ġregex . Ċ Ġ* Ċ Ġ* Ġ@ param Ġregex ĠThe Ġregex . Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ return Ġthe Ġlist Ġof Ġinput Ġmatches Ġthe Ġregex Ċ Ġ*/ Ċ fun Ġget Matches ( regex : ĠString , Ġinput : ĠCharSequence ?): ĠList < String >? Ġ{ ĊĠĠĠ Ġif Ġ( input Ġ== Ġnull ) Ġreturn Ġempty List () ĊĠĠĠ Ġval Ġmatches : ĠMutable List < String > Ġ= ĠArrayList () ĊĠĠĠ Ġval Ġpattern Ġ= ĠPattern . compile ( regex ) ĊĠĠĠ Ġval Ġmatcher Ġ= Ġpattern . matcher ( input ) ĊĠĠĠ Ġwhile Ġ( matcher . find ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġmatches . add ( matcher . group ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġmatches Ċ } Ċ Ċ /** Ċ Ġ* ĠSpl its Ġinput Ġaround Ġmatches Ġof Ġthe Ġregex . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠThe Ġinput . Ċ Ġ* Ġ@ param Ġregex ĠThe Ġregex . Ċ Ġ* Ġ@ return Ġthe Ġarray Ġof Ġstrings Ġcomputed Ġby Ġsplitting Ġinput Ġaround Ġmatches Ġof Ġregex Ċ Ġ*/ Ċ fun Ġget Spl its ( input : ĠString ?, Ġregex : ĠString ): ĠArray < String >? Ġ{ ĊĠĠĠ Ġif Ġ( input . isEmpty Or Blank Ext ()) Ġreturn ĠarrayOf () ĊĠĠĠ Ġreturn Ġinput !!. split ( regex . to Regex ()). to Typed Array () Ċ } Ċ Ċ /** Ċ Ġ* ĠReplace Ġthe Ġfirst Ġsub sequence Ġof Ġthe Ġinput Ġsequence Ġthat Ġmatches Ġthe Ċ Ġ* Ġregex Ġwith Ġthe Ġgiven Ġreplacement Ġstring . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠĠĠĠĠĠ ĠThe Ġinput . Ċ Ġ* Ġ@ param Ġregex ĠĠĠĠĠĠ ĠThe Ġregex . Ċ Ġ* Ġ@ param Ġreplacement ĠThe Ġreplacement Ġstring . Ċ Ġ* Ġ@ return Ġthe Ġstring Ġconstructed Ġby Ġreplacing Ġthe Ġfirst Ġmatching Ċ Ġ* Ġsub sequence Ġby Ġthe Ġreplacement Ġstring , Ġsubstit uting Ġcaptured Ċ Ġ* Ġsub sequences Ġas Ġneeded Ċ Ġ*/ Ċ fun Ġget Replace First ( ĊĠĠĠ Ġinput : ĠString ?, ĊĠĠĠ Ġregex : ĠString ?, ĊĠĠĠ Ġreplacement : ĠString ? Ċ ): ĠString ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( input Ġ== Ġnull ) Ġ"" Ġelse ĠPattern . compile ( regex ). matcher ( input ) ĊĠĠĠĠĠĠĠ Ġ. replace First ( replacement ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReplace Ġevery Ġsub sequence Ġof Ġthe Ġinput Ġsequence Ġthat Ġmatches Ġthe Ċ Ġ* Ġpattern Ġwith Ġthe Ġgiven Ġreplacement Ġstring . Ċ Ġ* Ċ Ġ* Ġ@ param Ġinput ĠĠĠĠĠĠ ĠThe Ġinput . Ċ Ġ* Ġ@ param Ġregex ĠĠĠĠĠĠ ĠThe Ġregex . Ċ Ġ* Ġ@ param Ġreplacement ĠThe Ġreplacement Ġstring . Ċ Ġ* Ġ@ return Ġthe Ġstring Ġconstructed Ġby Ġreplacing Ġeach Ġmatching Ġsub sequence Ċ Ġ* Ġby Ġthe Ġreplacement Ġstring , Ġsubstit uting Ġcaptured Ġsub sequences Ċ Ġ* Ġas Ġneeded Ċ Ġ*/ Ċ fun Ġget ReplaceAll ( ĊĠĠĠ Ġinput : ĠString ?, ĊĠĠĠ Ġregex : ĠString ?, ĊĠĠĠ Ġreplacement : ĠString ? Ċ ): ĠString ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( input Ġ== Ġnull ) Ġ"" Ġelse ĠPattern . compile ( regex ). matcher ( input ). replaceAll ( replacement ) Ċ }