Objective-C将字符串放在另一个字符串的位置

时间:2013-11-20 18:23:35

标签: objective-c string nsstring substring

我不想“知道”如何将字符串放在另一个字符串中的某个位置。我已经知道了,因为我想出了另一种方法。但我不知道真正的方式,甚至存在吗?

我也问这个问题以便将来有关如何将这个字符串放在另一个字符串中的位置“false”方式的问题(如果它不能以真正的方式完成)

我将(子)字符串放在字符串位置的意思是例如放

此字符串:@“Hello”位于:5 inString:@“123456789”

我希望结果为:@“12345Hello6789” 这可以用真正的方式完成吗?像这样的假代码:

[str stringByPuttingString:@"s" atLocation:5];//this code does not exist

我想出了其他方法来完成这项工作,我们可以将其用于更短的代码吗?

-(NSString *)putString:(NSString *)str atLocation:(int)location ofString:(NSString *)mainString {
    NSRange range = NSMakeRange(location, 0);
    return [mainString stringByReplacingCharactersInRange:range withString:str];
}

-(NSString *)putString:(NSString *)str atLocation:(int)location ofString:(NSString *)mainString {
    NSString *first = [mainString substringToIndex:location];
NSString *last = [mainString substringFromIndex:location];
return [NSString stringWithFormat:@"%@%@%@", first, str, last];
}

第一个感觉最好,还有其他想法或真实想法吗?

乔纳森, 在这个“问题”的未来案例中。

3 个答案:

答案 0 :(得分:7)

为什么不使用NSMutableString

NSMutableString *string = [NSMutableString stringWithString:@"123456789"];

[string insertString:@"Hello" atIndex:5];

NSLog(@"%@", string);

输出:

12345Hello6789

答案 1 :(得分:2)

您可以使用NSMutableString来完成此任务。具体来说,请参阅insertString:atIndex:方法的引用,该方法将完全按照您的意愿执行,即将字符串插入指定位置的另一个字符串。 API LINK

答案 2 :(得分:1)

您可以使用NSMutableString方法 insertString:atIndex:

来实现这一点

在接收器中插入给定位置的给定字符串的字符。

- (void)insertString:(NSString *)aString atIndex:(NSUInteger)anIndex

<强>参数

<强> ASTRING     要插入接收器的字符串。 aString不能为零。

<强> anIndex处     插入aString的位置。该位置不得超过接收器的范围。

取自apple developer classes ref