2010-01-25 74 views
0

我在向数组中添加可变字符串(用replaceOccurrencesOfString更改过)时遇到了一些问题。这涉及到另外一个问题,我问:Remove double quotes from NSString将NSMutableString添加到NSArray

下面是代码

//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中,但是当它添加到数组中时,它仍然有双引号。有什么想法吗?

回答

3

这是因为字符串中有一个空格,所以数组将它们用引号括起来,以确保您明白这两个单词在一起。如果要将字符串从数组中拉出并搜索双引号,则不会找到任何字符。

如果字符串仍然有它的报价和你登录用引号的字符串数组,它看起来像:

2010-01-25 10:14:37.818 EmptyFoundation[4131:a0f] (
    "\"Hello world!\"" 
) 
+0

谢谢,我的脑子里为什么报价仍然存在! – christo16 2010-01-25 17:20:33

1

我敢肯定,你只有看到

2010-01-25 09:01:15.663 Quotes[20058:a0f] anArray: (
"Hello World" 
) 

因为你打印出数组的描述 - 尝试

NSLog(@"The string is: %@", [anArray objectAtIndex:0]) 

,我相当有信心它会[R eturn与

The string is : Hello World 
相关问题