Reputation: 4728
I have a string in the following format
myString = "cat+dog+cow"
I need to store each string separated by + in to a array. Eg:
myArray[0] = cat
myArray[1] = dog
myArray[2] = cow
Can anyone tell me the proper way to do this?
Upvotes: 3
Views: 13077
Reputation: 31730
Use the componentsSeparatedByString:
method of NSString.
NSString string = @"hai-welcome";
NSArray myArray = [string componentsSeparatedByString:@"-"];
NSString* haiString = [myArray objectAtIndex:0];
NSString* welcomeString = [myArray objectAtIndex:1];
Upvotes: 1
Reputation: 875
Try This:
NSString *str = @"cat+dog+cow" ;
NSArray *array = [str componentsSeparatedByString:@"+"];
NSLog(@"%@",array) ;
Upvotes: 0
Reputation: 2927
componentsSeparatedByString:
splits the string and return the result in an array.
NSArray *myArray = [myString componentsSeparatedByString:@"+"];
[myArray objectAtIndex:0];//cat
[myArray objectAtIndex:1];//dog
[myArray objectAtIndex:2];//cow
Upvotes: 15
Reputation: 36447
Simple code :
NSString *myString = [[NSString alloc] initWithString:@"cat+dog+cow"];
NSArray *resultArray = [tempString componentsSeparatedByString:@"+"];
NSLog(@"1. %@ 2. %@ 3. %@",[resultArray objectAtIndex:0],[resultArray objectAtIndex:1],[resultArray objectAtIndex:2]);
Upvotes: 0
Reputation: 31
You can find this one very simple
NSString *str = @"cat+dog+cow";
NSArray *arr = [str componentsSeparatedByString:@"+"];
NSLog(@"Array items %@",arr);
OUTPUT:
Array items ( Cat, dog, Cow )
Upvotes: 1
Reputation: 826
NSArray *lines = [string componentsSeparatedByString:@"-"];
The first value will be stored in 0th index of lines and second value will be stored in 1th index of lines..
Why not array?
Upvotes: 0
Reputation: 44633
If you are averse to using arrays, you can consider this –
NSString *accessMode, *message;
NSScanner *scanner = [NSScanner scannerWithString:@"hai-welcome"];
NSCharacterSet *hyphenSet = [NSCharacterSet characterSetWithCharactersInString:@"-"];
[scanner scanUpToCharactersFromSet:hyphenSet intoString:&accessMode];
[scanner scanCharactersFromSet:hyphenSet intoString:nil];
[scanner scanUpToCharactersFromSet:[NSCharacterSet characterSetWithCharactersInString:@""] intoString:&message];
Upvotes: 0
Reputation: 10182
This will be the solution if you are dealing with a string:
NSString *mySstring = @"hai-welcome";
NSMutableArray *anArray=[[NSMutableArray alloc] initWithArray:[componentsSeparatedByString: @"-"]];
And each word will be stored in respective position from 0-n.
Try This. :)
Upvotes: 0
Reputation: 664
It is vert simple..
NSString * test = @"Hello-hi-splitting-for-test";
NSArray * stringArray = [test componentsSeparatedByString:@"-"];
// Now stringArray will contain all splitted strings.. :)
Hope this helps...
I you don't want use array then iterate through each character...
NSMutableString * splittedString = nil;
for(int i=0;i<test.length;i++){
unichar character = [test characterAtIndex:0];
if (character=='-') {
if (splittedString!=nil) {
NSLog(@"String component %@",splittedString);
[splittedString release];
splittedString = nil;
}
} else {
if (splittedString==nil) {
splittedString = [[NSMutableString alloc] init];
}
[splittedString appendFormat:@"%C",character];
}
}
if (splittedString!=nil) {
NSLog(@"String last component %@",splittedString);
[splittedString release];
splittedString = nil;
}
Thats all...
Upvotes: 1
Reputation: 10344
NSArray *strArray = [myString componentsSeparatedByString:@"-"];
firstString = [strArray objectAtIndex:0];//Hai
secondString = [strArray objectAtIndex:1];//Welcome
Upvotes: 0
Reputation: 2927
Try this..
NSArray *arr = [myString componentsSeparatedByString:@"-"];
[arr objectAtIndex:0];//Hai
[arr objectAtIndex:1];//Welcome
Upvotes: 3