替换字符串中的多个占位符

时间:2015-03-20 07:09:54

标签: ios

我要做的是在字符串中使用占位符,并用特定于用户的数据替换占位符。我可以将占位符设置为任何东西,所以基本上我希望执行以下操作:

  1. 在字符串中设置占位符(最多4个占位符)
  2. 用我指定的字符串替换这些占位符
  3. 这就是我所拥有的。我目前有一个网址,有一组像这样的占位符。 http://example.com/resource?placeholder1=placeholder2http://placeholder1:placeholder2@example.com/something?placeholder3

    如何正确标记占位符并替换它们?

    提前感谢您的帮助。

3 个答案:

答案 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];

这将生成newURLhttp://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);

最好将占位符字符串保留在某处定义的常量中。当然,替换那些占位符将是动态的,正如你所说,所以不能使它们成为常量。

告诉我这是否有帮助,或者如果您需要进一步的帮助。