Okogeki'sブログ

デキるエンジニアを目指すOkogekiのブログ

昨日の続き:アスキーコード化→元のNSString文へ

昨日の記事はこちら。

「NSString型文字列をアスキーコード変換されたNSString文字として表示」

http://okogeki.hatenablog.com/entry/2014/04/27/211705

 

昨日の記事ではアスキーコード変換されたNSString文字として表示することまで

出来ました。

後はまたこれを元の文字列に戻すソース部分です。

ソースは下記の通り。

 

NSString *ascii = @"546573742e4f6b6f67656b69";

    

    NSString  *removedtext;

    NSString  *c;

    NSScanner *scan;

    NSString  *result = @"";

    unsignedint i_c;

    

    for(int i=0; (![ascii  isEqual:@""]);i++){

        c = [ascii substringToIndex:2];

        scan = [NSScanner scannerWithString:c];

        removedtext = [ascii substringFromIndex:2];

        ascii = removedtext;

        [scan scanHexInt:&i_c];

        result = [NSString stringWithFormat:@"%@%c",result,i_c];

    }

 

    NSLog(@"%@",result);

 

処理の流れは簡単で、2文字ずつ元の文から区切り、16進数としてint型として読み込み、それを%cと表示してNSStringに突っ込んで終わり。

 

処理は簡単ですけど、意外と行数が多くなってしまったと反省。

もう少し短く書けそうな気もするのですが、今のところ思いついてません。