package Ġcom . menu xx . code . code Ċ Ċ /** Ċ Ġ* Ġä½ľèĢħ : Ġy in ch ang sh eng @ gmail . com Ċ Ġ* ĠåĪĽå»º äºİ : Ġ 2 0 1 7 / 1 2 / 2 5 Ċ Ġ* Ġ å¾®ä¿¡ : Ġy in 8 0 8 7 1 9 0 1 Ċ Ġ*/ Ċ class ĠBase 6 2 () Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġa ĠBase 6 2 Ġobject Ġwith Ġthe Ġdefault Ġcharset Ġ( 0 .. 9 a .. zA .. Z ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġcharacters Ġ= Ġ" 0 1 2 3 4 5 6 7 8 9 abcdefgh ijkl mnopqrst uvw xyz ABCDEF GH IJ KL MN OP Q RST UV W XYZ " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConstructs Ġa ĠBase 6 2 Ġobject Ġwith Ġa Ġcustom Ġcharset . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcharacters ĊĠĠĠĠ Ġ* Ġthe Ġcharset Ġto Ġuse . ĠMust Ġbe Ġ 6 2 Ġcharacters . ĊĠĠĠĠ Ġ* Ġ@ throws Ġ` IllegalArgumentException ` Ġif Ġthe Ġsupplied Ġcharset Ġis Ġnot Ġ 6 2 Ġcharacters Ġlong . ĊĠĠĠ Ġ`` Ġ*/ ĊĠĠĠ Ġconstructor ( characters : ĠString ) Ġ: Ġthis () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Ġcharacters . length Ġ!= Ġ 6 2 Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Invalid Ġstring Ġlength , Ġmust Ġbe Ġ 6 2 .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . characters Ġ= Ġcharacters ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEn codes Ġa Ġdecimal Ġvalue Ġto Ġa ĠBase 6 2 Ġ` String `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġb 1 0 ĊĠĠĠĠ Ġ* Ġthe Ġdecimal Ġvalue Ġto Ġencode , Ġmust Ġbe Ġnon negative . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġnumber Ġencoded Ġas Ġa ĠBase 6 2 Ġ` String `. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġencode Base 1 0 ( b 1 0 : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġ_ b 1 0 Ġ= Ġb 1 0 ĊĠĠĠĠĠĠĠ Ġif Ġ(_ b 1 0 Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" b 1 0 Ġmust Ġbe Ġnon negative ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġret Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġwhile Ġ(_ b 1 0 Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġret Ġ= Ġcharacters [ (_ b 1 0 Ġ% Ġ 6 2 ). toInt ()] Ġ+ Ġret ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ b 1 0 Ġ/= Ġ 6 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġret ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDe codes Ġa ĠBase 6 2 Ġ` String ` Ġreturning Ġa Ġ` long `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġb 6 2 ĊĠĠĠĠ Ġ* Ġthe ĠBase 6 2 Ġ` String ` Ġto Ġdecode . ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġdecoded Ġnumber Ġas Ġa Ġ` long `. ĊĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException ĊĠĠĠĠ Ġ* Ġif Ġthe Ġgiven Ġ` String ` Ġcontains Ġcharacters Ġnot ĊĠĠĠĠ Ġ* Ġspecified Ġin Ġthe Ġconstructor . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdecode Base 6 2 ( b 6 2 : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġ_ b 6 2 Ġ= Ġb 6 2 ĊĠĠĠĠĠĠĠ Ġfor Ġ( character Ġin Ġ_ b 6 2 . toCharArray ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Ġ! characters . contains ( character . toString ()) Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Invalid Ġcharacter ( s ) Ġin Ġstring : Ġ" Ġ+ Ġcharacter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġret : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġ_ b 6 2 Ġ= ĠStringBuffer (_ b 6 2 ). reverse (). toString () ĊĠĠĠĠĠĠĠ Ġvar Ġcount : ĠLong Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġfor Ġ( character Ġin Ġ_ b 6 2 . toCharArray ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġret Ġ+= Ġcharacters . indexOf ( character ) Ġ* Ġcount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ*= Ġ 6 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġret ĊĠĠĠ Ġ} Ċ Ċ }