2010-10-25 4 views
0

je veux analyser cette chaînepasing chaîne complexe sur iphone

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" 

pour que je ne peux pas obtenir la valeur comme 1) a[0]=21.318, a[1]=03.863,a[3]=11.317,a[4]=113.846....

ou comment obtenir ce tableau comme 2d comme 2)

a[0,0]=21.318,103.863 

un [1,1] = 21.318,103.863

Je l'ai fait, mais d'aucune utilité

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

Veuillez indiquer comment utiliser les deux sens comme 1D et 2D

Répondre

1

Je résoudre votre problème de cette façon:

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]; 

Ensuite, vous pouvez convertir le tableau result à tableau à deux dimensions:

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]; 
} 
+0

en quelque sorte son travail pas que je l'ai fait NSLog (@ "est cout% @", innerArray); ?? – prajakta

+0

@prajakta: essayez de le déboguer. Peut-être le problème est dans les espaces, qui sont présents dans une chaîne - vous pouvez les supprimer avec [NSString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]. – kovpas

Questions connexes