package Ġcn . ling . yu . n fc . y ul n fc Ċ Ċ import Ġandroid . text . TextUtils Ċ import Ġjava . util .* Ċ import Ġkotlin . experimental . and Ċ Ċ /** Ċ Ġ* Ġ è½¬ åŃĹèĬĤ Ċ Ġ* Ġ@ author ĠY u ĠL . Ċ Ġ* Ġ@ date Ġ 2 0 2 2 / 3 / 2 9 Ċ Ġ* Ġ@ email Ġ 2 3 7 8 8 1 2 3 5 @ qq . com Ċ Ġ*/ Ċ object ĠByte To Convert StringUtils Ġ{ ĊĊĠĠĠ Ġfun Ġbytes 2 HexString ( data : ĠByteArray ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data Ġ== Ġnull ) Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġbuffer Ġ= Ġjava . lang . StringBuilder () ĊĠĠĠĠĠĠĠ Ġfor Ġ( b Ġin Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhex Ġ= ĠInteger . to HexString (( b . toInt () Ġand Ġ 0 xff )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( hex . length Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . append (' 0 ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuffer . append ( hex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuffer . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Hex And 1 6 Byte ( hex String : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhex String . matches ("[ 0 - 9 A - Fa - f ]+ ". to Regex ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhex StringTo Bytes ( hex String : ĠString ?): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠ Ġ// Ġval Ġhex Temp String Ġ= Ġhex String ĊĠĠĠĠĠĠĠ Ġif Ġ( hex String Ġ== Ġnull Ġ|| Ġhex String Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// hex Temp String Ġ= Ġhex Temp String . uppercase ( Locale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġhex String . length Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġval Ġhex Chars Ġ= Ġhex String . toCharArray () ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= ĠByteArray ( length ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpos Ġ= Ġi Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġd [ i ] Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( char To Byte ( hex Chars [ pos ]). toInt () Ġshl Ġ 4 Ġor Ġchar To Byte ( hex Chars [ pos Ġ+ Ġ 1 ]). toInt ()). to Byte () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġd ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconvert StringTo 1 6 Bytes ( content : ĠString ?): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( content )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġbytes : ĠByteArray Ġ= Ġhex StringTo Bytes ( content ) !! ĊĠĠĠĠĠĠĠ Ġif Ġ( bytes . size Ġ!= Ġ 1 6 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= ĠByteArray ( 1 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġtemp . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp [ i ] Ġ= Ġif Ġ( bytes . size Ġ> Ġi ) Ġbytes [ i ] Ġelse Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbytes Ġ= Ġtemp ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbytes ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchar To Byte ( c : ĠChar ): ĠByte Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" 0 1 2 3 4 5 6 7 8 9 ABCDEF ". indexOf ( c ). to Byte () ĊĠĠĠ Ġ} Ċ Ċ } ĊĊĊ