NSString / NSMutableString奇怪的行为

时间:2011-09-24 07:06:26

标签: iphone objective-c nsstring

好的,这是nsmutablestring

data = [NSMutableString stringWithFormat:@"&cb_games%5B%5D="];

现在,当我尝试打印或使用此字符串时,我得到大号而不是%5B和%5D不确定为什么会发生任何帮助都会受到侮辱

谢谢

5 个答案:

答案 0 :(得分:4)

您获得意外输出的原因是'%' printf 中用作 转换说明符 ,显然 NSLog NSString 格式。如果您不希望将它解释为转换说明符,则需要转义'%'。您可以通过将'%''%'之类的其他'%%'一起转发来@"&cb_games%%5B%%5D=" 。{/ 1}

你的字符串应该是,

{{1}}

@August Lilleaas的答案也值得注意。

答案 1 :(得分:2)

试试这个:

NSString * data = [NSMutableString stringWithFormat:@"&cb_games%%5B%%5D="];
NSLog(@"%@",data);

答案 2 :(得分:2)

stringWithFormat基本上是printf,它会尝试用您未提供的值替换您的百分比,这就是为什么会发生奇怪的事情。

[NSMutableString stringWithFormat:@"Hello: %d", 123];
// @"Hello: 123"

如果你想要一个字符串的可变字符串,试试这个:

[NSMutableString stringWithString:@"Abc %2 %3"];
// @"Abc %2 %3"

答案 3 :(得分:0)

%用于字符串格式化和填充。我想你需要逃避角色或其他东西,可能是斜线。

答案 4 :(得分:0)

你的意思是写吗?

data = [NSMutableString stringWithString@"&cb_games%5B%5D="]