我正在製作一個iPad應用程序供個人使用,我正在努力在某些字符串中替換一些字符。例如,我得到一個包含「\ t \ t \ t C D」的NSString。現在我想要做的是用C#和D#替換每個C和每個D。我設法做到了這一點,但不幸的是,它對我來說看起來效率不高。替換NSString中的幾個不同的字符
這是到目前爲止我的代碼:
- (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)。
任何想法將非常感激!
非常感謝!
謝謝Diederik。我會試試看,並回復你! – user1644365
再次嗨!我做了你的建議。我結束了包含幾個元素的數組「 {4,1} { [AG]#?0x0}」, 「 {6,1} { [AG]#?0x0}「 我不確定我是怎麼從範圍中替換一個子串的。我在文檔中看到這兩個元素屬於NSTextCheckingResult類,它們有一個範圍屬性,但我應該如何使用它? –
user1644365
我明白{4,1}和{6,1}是需要替換的字符的範圍,但我再也不能得到我應該如何從這些範圍中獲取字符並以某種方式比較它們進行更改。非常感謝你! – user1644365