繁体   English   中英

如何分离NSString的各个部分?

[英]How to separate parts of NSString?

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

拆分字符串的关键是使用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];
    }
}

这是代码:

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

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

用这个:

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

尝试这个 ::

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

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

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

我找到了路。 在迭代原始数组的元素时,我将继续分别在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];  
     }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM