我在某种程度上错误地使用了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?
答案 0 :(得分:5)
NSMakeRange()
的第二个参数是长度,而不是结束索引。您可能只想传递1
。
答案 1 :(得分: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);
// Frist参数是起始点,第二个是终点,它是0的星形,依此类推。
myword = [myword stringByReplacingCharactersInRange:firstCharRange withString:@"H"];
NSLog(@"After = %@ ",myword);
这可能是你的理由。