我在将一个可变字符串(已使用replaceOccurrencesOfString更改)添加到数组时遇到了一些麻烦。这与我提出的另一个问题有关:Remove double quotes from NSString
这是代码
//original String
NSString *aString = @"\"Hello World\"";
NSLog(@"Original String: %@",aString);
//craete mutable copy
NSMutableString *mString = [aString mutableCopy];
//remove quotes
[mString replaceOccurrencesOfString:@"\"" withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, [aString length])];
NSLog(@"Mutable String: %@",mString);
//add to an array
NSArray *anArray = [NSArray arrayWithObject:mString];
NSLog(@"anArray: %@",anArray);
结果:
2010-01-25 09:01:15.644 Quotes[20058:a0f] Original String: "Hello World"
2010-01-25 09:01:15.662 Quotes[20058:a0f] Mutable String: Hello World
2010-01-25 09:01:15.663 Quotes[20058:a0f] anArray: (
"Hello World"
)
一 正如您所看到的,字符串在mString中被删除了引号,但是当它被添加到数组时,它仍然具有双引号。有什么想法吗?
答案 0 :(得分:3)
那是因为字符串中有一个空格,所以数组用引号括起来以确保你理解这两个单词在一起。如果你要将字符串拉出数组并搜索双引号,你就找不到任何字符。
如果字符串中仍然包含引号并且您要使用带引号的字符串记录数组,则它看起来像:
2010-01-25 10:14:37.818 EmptyFoundation[4131:a0f] (
"\"Hello world!\""
)
答案 1 :(得分:1)
我很确定你唯一的见面
2010-01-25 09:01:15.663 Quotes[20058:a0f] anArray: (
"Hello World"
)
因为你打印出阵列的描述 - 试试
NSLog(@"The string is: %@", [anArray objectAtIndex:0])
我非常有信心它会以
回归The string is : Hello World