私は個人用のiPadアプリを作成していますが、一部の文字列の文字置換に苦労しています。たとえば、「\ t \ t \tCD」を含むNSStringを取得しました。今私がやりたいのは、そこにあるすべてのCとすべてのDをC#とD#に置き換えることです。私はそれをなんとかすることができましたが、残念ながらそれは私にはまったく効率的に見えません。
これまでの私のコードは次のとおりです。
- (IBAction)buttonPressed:(id)sender
{
if(sender)
{
NSError *error;
NSString *newTab = [[NSString alloc] init];
NSRegularExpression *regexC = [NSRegularExpression regularExpressionWithPattern:@"C" options:0 error:&error];
NSRegularExpression *regexD = [NSRegularExpression regularExpressionWithPattern:@"D" options:0 error:&error];
newTab = [regexC stringByReplacingMatchesInString:self.tab options:0 range:NSMakeRange(0, self.tab.length) withTemplate:@"C#"];
NSString *newTabAfterFirstRegex = [[NSString alloc] initWithString:newTab];
newTabAfterFirstRegex = [regexD stringByReplacingMatchesInString:newTab options:0 range:NSMakeRange(0, newTab.length) withTemplate:@"D#"];
NSLog(@"%@",newTabAfterFirstRegex);
}
}
さらに、これは単なる小さなテスターコードです。私が本当にやりたいのは、特定の文字列内のすべての音楽タブ(CC#DD#EFF#GG#AA#B)のインスタンスをチェックするアルゴリズムを用意することです。IBActionがトリガーされると、それぞれが必要になります。次のものに置き換えられます(そしてBはCになります)。
どんなアイデアでも大歓迎です!
どうもありがとうございます!