将NSDictionary转换为NSString后替换NSString中的字符

时间:2014-12-27 21:50:31

标签: ios objective-c nsstring

我已经四处搜索,无法找到答案,所以请原谅我,如果我创建了一个重复的问题。

我已将NSDictionary转换为NSString,并希望取出所有出现的" {","}"和&#34 ;; &#34 ;.当我使用stringByReplacingOccurrencesOfString时,NSLog中没有任何不同的内容。

我写的代码:

NSString *myString = [myDictionary description];
[myString stringByReplacingOccurrencesOfString: @"{" withString:@""];
[myString stringByReplacingOccurrencesOfString: @"}" withString:@""];
[myString stringByReplacingOccurrencesOfString: @";" withString:@""];

NSLog(@"%@", myString);

2 个答案:

答案 0 :(得分:3)

没有什么不同的原因是stringByReplacingOccurencesOfString返回一个你需要分配给myString的新字符串,它不会改变字符串,所以你可以使用

NSString *myString = [myDictionary description];
myString=[myString stringByReplacingOccurrencesOfString: @"{" withString:@""];
myString=[myString stringByReplacingOccurrencesOfString: @"}" withString:@""];
myString=[myString stringByReplacingOccurrencesOfString: @";" withString:@""];

NSLog(@"%@", myString);

但是,通常应该使用description来避免调试/日志记录。您应该直接迭代字典 - 例如。

NSMutableString *myString=[NSMutableString new];
for (NSString *key in myDictionary.allKeys) {
    [myString appendString:@"%@ = %@\r\n",key,myDictionary[key]];
}

NSLog(@"%@",myString");

答案 1 :(得分:0)

您需要同时使用stringByTrimmingCharactersInSetstringByReplacingOccurrencesOfString api。请参阅以下示例代码: -

NSString *myString = [myDictionary description];
NSString *str=[myString stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"{}"]];
NSLog(@"%@", [str stringByReplacingOccurrencesOfString:@";" withString:@""]);