我有一个NSString
对象数组,这些对象包含一些不必要的字符(一个对象在控制台中看起来像这样:"\"stringContent\""
),我将使用以下代码删除它们。它可以正常工作,但是当我登录arr1
时,有50-60%的字符串都带有引号,例如"stringContent"
,其他字符串则没有。实际上,我的问题是我没有发生这种情况的原因,因为当我在for循环中记录字符串时,它们没有引号。有人知道会导致这种情况的原因吗?
NSMutableArray * arr1 = [[NSMutableArray alloc ]init];
for (NSString *str in self.stringArray) {
NSString *newString = [str substringToIndex:[brand length]-1];
NSString *nwstr = [newString substringFromIndex:1];
[arr1 addObject:nwstr];
NSLog(@"string %@", nwstr);
}
NSLog(@"array %@", arr1);
其他可能有所帮助的事情是,当我将其称为控制台中出现的每个对象时,好像对
containsString
方法隐藏了引号,因为其中许多不满足if语句的要求。for (NSString *str in arr1) {
if (![str containsString:@"\""]) {
NSLog(@"XXX %@", str);
}
}
最佳答案
当您使用NSLog记录NSArray或NSDictionary时,将以日志格式显示元素,该格式可以(或可以不)包含多余的引号,转义字符等。特别是,在字符串周围使用引号,当字符串中不包含非-时除外。字母字符或空格。
更详细的信息:实际上发生的是NSLog在内部调用[NSString stringWithFormat:]
或其同类之一来格式化要记录的文本。 stringWithFormat:
依次调用参数列表中与description
格式指令相对应的每个对象的%@
方法。 NSArray和NSDictionary的description
方法添加了额外的字符。
关于ios - for循环后,未知引号添加到NSMutableArray中的字符串对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322465/