package Ġad . k ata . a oc 2 0 2 1 Ċ Ċ import Ġad . k ata . a oc 2 0 2 1 . extensions . split Trim Ċ import Ġad . k ata . a oc 2 0 2 1 . extensions . split Trim To Sequence Ċ Ċ /* Ġsequences Ġof Ġform Ġa ^ b ^ c ^ d ^ ... Ġ*/ Ċ fun Ġ< T > ĠString . parse Sequence ( delimiter : ĠChar Ġ= Ġ'^ ', Ġtransform : Ġ( String ) Ġ-> ĠT ) Ġ= ĊĠĠĠ Ġsplit Trim To Sequence ( delimiter ) ĊĠĠĠĠĠĠĠ Ġ. filter ( String :: isNotEmpty ) ĊĠĠĠĠĠĠĠ Ġ. map ( transform ) Ċ Ċ fun ĠString . parseInt Sequence ( delimiter : ĠChar Ġ= Ġ'^ ') Ġ= Ġparse Sequence ( delimiter ) Ġ{ Ġit . toInt () Ġ} Ċ Ċ /* Ġlists Ġof Ġform Ġ[ a , b , c , d , ...] Ġ*/ Ċ fun Ġ< T > ĠString . parse List ( delimiter : ĠChar Ġ= Ġ', ', Ġtransform : Ġ( String ) Ġ-> ĠT ) Ġ= ĊĠĠĠ Ġremove Sur rounding ("[ ", Ġ"] ") ĊĠĠĠĠĠĠĠ Ġ. parse Sequence ( delimiter , Ġtransform ) ĊĠĠĠĠĠĠĠ Ġ. toList () Ċ Ċ fun Ġ< T > ĠString . parse List As Sequence ( delimiter : ĠChar Ġ= Ġ', ', Ġtransform : Ġ( String ) Ġ-> ĠT ) Ġ= ĊĠĠĠ Ġparse List ( delimiter , Ġtransform ). as Sequence () Ċ Ċ fun ĠString . parseInt List ( delimiter : ĠChar Ġ= Ġ', ') Ġ= Ġparse List ( delimiter , ĠString :: toInt ) Ċ fun ĠString . parse String List ( delimiter : ĠChar Ġ= Ġ', ') Ġ= Ġparse List ( delimiter , ĠString :: toString ) Ċ Ċ /* Ġvectors Ġof Ġform Ġ( a , b ) Ġ*/ Ċ private Ġfun Ġ< T > ĠString . parse Vector ( transform : Ġ( List < String >) Ġ-> ĠT ) Ġ= ĊĠĠĠ Ġremove Sur rounding (" (", Ġ") ") ĊĠĠĠĠĠĠĠ Ġ. split Trim (',') ĊĠĠĠĠĠĠĠ Ġ. let ( transform ) Ċ Ċ fun ĠString . parseInt Pair () Ġ= ĊĠĠĠ Ġparse Vector Ġ{ Ġ( i 1 , Ġi 2 ) Ġ-> Ġi 1 . toInt () Ġto Ġi 2 . toInt () Ġ} Ċ Ċ fun ĠString . parse Pair () Ġ= ĊĠĠĠ Ġparse Vector Ġ{ Ġ( i 1 , Ġi 2 ) Ġ-> Ġi 1 Ġto Ġi 2 Ġ} Ċ Ċ fun ĠString . parseInt Triple () Ġ= ĊĠĠĠ Ġparse Vector Ġ{ Ġ( i 1 , Ġi 2 , Ġi 3 ) Ġ-> ĠTrip le ( i 1 . toInt (), Ġi 2 . toInt (), Ġi 3 . toInt ()) Ġ}