将NSMutableString添加到NSArray

时间:2010-01-25 17:08:11

标签: objective-c string

我在将一个可变字符串(已使用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中被删除了引号,但是当它被添加到数组时,它仍然具有双引号。有什么想法吗?

2 个答案:

答案 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