-2

我以某种方式错误地使用了 stringByReplacingCharactersInRange,但我不明白如何。我的目标是NSString用另一个替换一个字符。我这样做了很多次,但是在两次替换后它从 NSString 的末尾开始切割,我不想要这个。这是我的代码。

    NSRange firstCharRange = NSMakeRange(mi, mi); // mi is an int, indicating the index of the replaced char

    myword = [myword stringByReplacingCharactersInRange:firstCharRange withString:bb.titleLabel.text]; // myword is the string

最初myword是@"RRRRRRRR",替换第一个字符串后变成

eRRRRRRR

然后

egRRRRRR

然后

eghRRRR // why did cut off the last character?
4

2 回答 2

5

的第二个参数NSMakeRange()是长度,而不是结束索引。您可能只想传入1.

于 2012-08-09T03:32:48.210 回答
0

NSString *str =@"Hardeep_Singh";

NSLog(@"Before = %@",str);

str = [str stringByReplacingOccurrencesOfString:@"_" withString:@" "];

NSLog(@"After = %@",str);

您可以使用它。在此我们可以将一个字符替换为 NSString 的另一个字符。可能对你有帮助。

NSString *myword=[NSString stringWithString:@"0123456789"];

NSLog(@"Before = %@ ",myword);

NSRange firstCharRange = NSMakeRange(1,2); 

// 第一个参数是起点,第二个是终点,从 0 开始,以此类推。

myword = [myword stringByReplacingCharactersInRange:firstCharRange withString:@"H"];

NSLog(@"After = %@ ",myword);

这是你的答案可能是你的理解。

于 2012-08-09T04:15:42.023 回答