iPhone:如何分离字符串,如“ListName |定义|答案”

时间:2011-08-19 07:29:16

标签: iphone objective-c ios cocoa-touch

我收到以下格式的字符串。

ListName|Definition|Answer

以及如何将它分开:

String1 : ListName

String2 : Definition

String3 : Answer

在这里,根据价值的变化,这些词可以是deffer。

所以在任何其他方面,它可能像Hey|Name|Bye

|始终在字符串中。

是否可以计算字符串中|的数量?

如何分开?

5 个答案:

答案 0 :(得分:2)

你可以将它分开:

NSString *string = @"ListName|Definition|Answer";
NSArray *chunks = [string componentsSeparatedByString: @"|"];

现在你有一个像:

这样的数组
chunk[0] = ListName
chunk[1] = Definition
chunk[2] = Answer

希望它可以帮助你......

答案 1 :(得分:2)

您正在寻找的方法内置于NSString类中。可以找到该课程的文档here

使用的方法是。

- (NSArray *)componentsSeparatedByString:(NSString *)separator

//An example of this in action
NSString *exampleString = @"Test|some|strings";

NSArray *separatedStrings = [exampleString componentsSeparatedByString:@"|"];

此时,您可以对数组中的每个字符串执行任何操作,例如迭代它或访问序列中的特定字符串。

我已经包含了一个迭代返回的元素供参考的例子。

//This for example is a nice use of the NSArray enumeration
//Much easier than the standard for loop with multiple parameters
for(NSString *aComponent in separatedStrings) {
   NSLog(@"A piece is: %@", aComponent);
   //Do something with each string
}

答案 2 :(得分:2)

使用此:

NSArray *comps = [string componentsSeparatedByString: @"|"];
NSString *listName = [comps objectAtIndex:0];
NSString *definition = [comps objectAtIndex:1];
NSString *answer = [comps objectAtIndex:2];

答案 3 :(得分:2)

以下是整个代码:

NSArray * array = [string componentsSeparatedByString:@“|”];

NSMutableArray * mutableArray = [NSMutableArray arrayWithArray:array];

for(int i=0; i<[mutableArray count]; i++)
{
    NSString *strData = [mutableArray objectAtIndex:i];
    NSLog(@"%@",strData);
}

干杯。

答案 4 :(得分:1)

为输入字符串构建数组

  NSArray *strArray = [string componentsSeparatedByString: @"|"];

然后填充此数组中的所有nsstrings。