views:

36

answers:

1

i want to parse this string

appDelegate.gpsArray= "\n\n 21.318\n03.863\n\n\n 21.317\n03.864\n\n\n 11.316\n113.864\n\n\n"

so that i cant get value like 1) a[0]=21.318, a[1]=03.863,a[3]=11.317,a[4]=113.846....

or how to get this as 2d array like 2)

a[0,0]=21.318,103.863

a[1,1]=21.318,103.863

i did this but of no use

NSMutableArray  *a1 = [[NSMutableArray alloc] init];
        [a1 addObjectsFromArray:appDelegate.gpsArray   ];

Kindly suggest how to use both ways like 1D and 2D

+1  A: 

I'd solve your problem in this way:

NSArray *stringsArray = [appDelegate.gpsArray componentsSeparatedByString:"\n"];
NSMutableArray *result = [NSMutableArray array];

NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];

for (NSString *str in stringsArray ) {
    if( ![str isEqualToString:@""] ) {
        [result addObject:[f numberFromString:str]];
    }
}

[f release];

Then you can convert the result array to two-dimensional array:

NSMutableArray *result2D = [NSMutableArray array];

for ( int i = 0; i < [result count] / 2; i++ ) {
    NSMutableArray *innerArray = [[NSMutableArray alloc] init];
    [innerArray addObject:[result objectAtIndex:2 * i]];
    [innerArray addObject:[result objectAtIndex:2 * i + 1]];
    [result2D addObject:innerArray];
    [innerArray release];
}
kovpas
somehow its not working i did NSLog(@" cout is %@",innerArray);??
prajakta
@prajakta: try to debug it. May be the problem is in spaces, that are present in a string - you may remove them with [NSString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]].
kovpas