我要做的是在字符串中使用占位符,并用特定于用户的数据替换占位符。我可以将占位符设置为任何东西,所以基本上我希望执行以下操作:
这就是我所拥有的。我目前有一个网址,有一组像这样的占位符。 http://example.com/resource?placeholder1=placeholder2或http://placeholder1:placeholder2@example.com/something?placeholder3
如何正确标记占位符并替换它们?
提前感谢您的帮助。
答案 0 :(得分:3)
您可以使用 stringByReplacingOccurrencesOfString 方法,如下所示
NSString *strUrl = @"http://example.com/resource?placeholder1=placeholder2";
strUrl = [strUrl stringByReplacingOccurrencesOfString:@"placeholder1" withString:@"value1"];
strUrl = [strUrl stringByReplacingOccurrencesOfString:@"placeholder2" withString:@"key1"];
答案 1 :(得分:0)
引用:“我想用我已创建的名为value1的NSString替换placeholder1,使用名为key1的NSString替换占位符。”
NSString *mainUrl = "http://example.com/resource";
NSString *string1 = "value1";
NSString *string2 = "value2";
Now change your URL:
NSString *newURL = [NSString NSStringWithFormat:@"%@?%@=%@",mainUrl,string1,string2];
这将生成newURL
:http://example.com/resource?value1=value2
答案 2 :(得分:0)
这可能会对你有帮助。
#define placeHolder1 @"<>p1p1p1<>"
#define placeHolder2 @"<>p2p2p2<>"
并将其置于您想要替换字符串的函数中
NSString * string = [NSString stringWithFormat:@"http://example.com/resource?%@=%@",placeHolder1,placeHolder2];
NSLog(@"string %@",string);
NSString * replacerForP1 = @"123";
NSString * replacerForP2 = @"741";
string = [string stringByReplacingOccurrencesOfString:placeHolder1
withString:replacerForP1];
string = [string stringByReplacingOccurrencesOfString:placeHolder2
withString:replacerForP2];
NSLog(@"string %@",string);
最好将占位符字符串保留在某处定义的常量中。当然,替换那些占位符将是动态的,正如你所说,所以不能使它们成为常量。
告诉我这是否有帮助,或者如果您需要进一步的帮助。