如何分离NSString的部分?

时间:2013-01-23 04:19:16

标签: iphone

我有NSStrings的NSMutableArray,其中数组的每个元素的格式等于@“key is 1 :: value is 1”。现在我想将一个字符串部分存储在一个数组1中的“::”之前,而字符串部分存储在一个数组2中的“::”之后。我怎样才能做到这一点?

5 个答案:

答案 0 :(得分:0)

分割字符串的关键是使用NSString上的componentsSeparatedByString:方法将字符串分隔为NSArray。阅读有关此方法如何使用空白字符串等操作的文档,但这是您使用的方法。

你说你有一个字符串数组,所以基本的实现将涉及迭代该数组并将每个元素添加到另外两个数组。

NSMutableArray *arrayOfStrings = [NSMutableArray array];
NSMutableArray *array1 = [NSMutableArray array];
NSMutableArray *array2 = [NSMutableArray array];

for (NSString *string in arrayOfStrings)
{
    NSArray *components = [string componentsSeparatedByString:@"::"];
    if ([components count] == 2)
    {
        NSString *obj1 = [components objectAtIndex:0];
        NSString *obj2 = [components objectAtIndex:1];
        [array1 addObject:obj1];
        [array2 addObject:obj2];
    }
}

答案 1 :(得分:0)

以下是代码:

NSArray *temp = [YourString componentsSeparatedByString:@"::"];
NSString *str1 = [temp objectAtIndex:0];
NSString *str2 = [temp objectAtIndex:1];

但在访问数组中的对象之前..检查它是否包含值。

答案 2 :(得分:0)

使用它:

[array1 addObject:[[YourString componentsSeparatedByString:@"::"] objectAtIndex:0]];
[array2 addObject:[[YourString componentsSeparatedByString:@"::"] objectAtIndex:1]];

答案 3 :(得分:0)

试试这个::

NSString *s = @"key is 1::value is 1";

NSArray *a = [s componentsSeparatedByString:@"::"];

NSLog(@" -> %@ --> %@", [a objectAtIndex:0], [a objectAtIndex:1]);

答案 4 :(得分:0)

我找到了方法。我将继续在array1和array 2中分别添加beforeString和afterString,同时迭代原始数组的元素

for(int i=0;i<self.originalArray.count;i++)
    {
      NSString *temp=[self.originalArray objectAtIndex:i];

        NSRange r = [temp rangeOfString:@"::"];
        NSString *beforeString = [temp substringToIndex:r.location];
        NSString *afterString = [temp substringFromIndex:r.location+2];

        [array1 addObject:beforeString];  
        [array2 addObject:afterString];  
     }