【问题标题】:Adding NSMutableString to NSArray将 NSMutableString 添加到 NSArray
【发布时间】:2010-01-25 17:08:11
【问题描述】:

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

【问题讨论】:

    标签: objective-c string


    【解决方案1】:

    那是因为字符串中有一个空格,因此数组将它用引号括起来,以确保您理解这两个词是一起出现的。如果您将字符串从数组中拉出并搜索双引号,您将找不到任何内容。

    如果字符串中仍然有引号,并且您要使用带引号的字符串记录数组,它看起来像:

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

    【讨论】:

    • 谢谢,我绞尽脑汁想为什么引号还在那里!
    【解决方案2】:

    我很确定你唯一看到的

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多