スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
このエントリーをはてなブックマークに追加

[iOS]文字列を一文字ずつ取り出して表示する。

取得した文字列を一つずつ取り出して表示するメソッドが出来上がったので残しておきます。
独自に作ったスクリプト解析をしようと作業していた過程で出来上がったものです。

//scriptに入った文字列が一文字ずつ表示されます。
-(void)ScriptReader:(NSString *)script{
NSLog(@"script:\n%@",script);
for (int i=0; i < script.length; i++) {
//こちらは、ただそのままUnicode文字列を表示します。
//NSLog(@"|%hu|",[script characterAtIndex:i]);
const unichar tmp_unic = [script characterAtIndex:i];
NSString *tmp_str = [[[NSString alloc] initWithCharacters:&tmp_unic
length:1] autorelease];
//ここでは特殊な文字を入れ替えてログをわかりやすくしているだけです。
if([tmp_str isEqualToString:@"\r"]){
tmp_str = @"CR";
}else if ([tmp_str isEqualToString:@"\n"]) {
tmp_str = @"LF";
}else if ([tmp_str isEqualToString:@"\t"]) {
tmp_str = @"TB";
}else if ([tmp_str isEqualToString:@"\""]) {
tmp_str = @"DQ";
}else if ([tmp_str isEqualToString:@"\'"]) {
tmp_str = @"SQ";
}else if ([tmp_str isEqualToString:@"\\"]) {
tmp_str = @"BS";
}
NSLog(@"|%@|",[tmp_str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
}
}


さらにコードを短くできることに気が付いたので修正しました。
//scriptに入った文字列が一文字ずつ表示されます。
-(void)ScriptReader:(NSString *)script{
NSLog(@"script:\n%@",script);
for (int i=0; i < script.length; i++) {
//こちらは、ただそのままUnicode文字列を表示します。
//NSLog(@"|%hu|",[script characterAtIndex:i]);
NSString *tmp_str = [script substringWithRange:NSMakeRange(i, 1)];
//ここでは特殊な文字を入れ替えてログをわかりやすくしているだけです。
if([tmp_str isEqualToString:@"\r"]){
tmp_str = @"CR";
}else if ([tmp_str isEqualToString:@"\n"]) {
tmp_str = @"LF";
}else if ([tmp_str isEqualToString:@"\t"]) {
tmp_str = @"TB";
}else if ([tmp_str isEqualToString:@"\""]) {
tmp_str = @"DQ";
}else if ([tmp_str isEqualToString:@"\'"]) {
tmp_str = @"SQ";
}else if ([tmp_str isEqualToString:@"\\"]) {
tmp_str = @"BS";
}
NSLog(@"|%@|",[tmp_str stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]);
}
}



参考URL: NSString + (id)stringWithCharacters:(const unichar *)chars length:(NSUInteger)length
スポンサーサイト
このエントリーをはてなブックマークに追加

tag : iOS NSString 文字列 Unicode NSLog ログ 表示 一文字 unichar

Translation


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。