2011-06-14 59 views
0
NSBundle *bundle = [NSBundle mainBundle]; 
    NSString *pthpath = [bundle pathForResource:@"path" ofType:@"txt"]; 
    NSString *content = [NSString stringWithContentsOfFile:pthpath encoding:NSUTF8StringEncoding error:nil]; 
    array=[[NSArray alloc ]init]; 
    array = [content componentsSeparatedByString:@"~"]; 
===================================================================== 

這裏內容是:解析陣列元件

87348〜51347〜135132〜182133〜268346〜236347〜159168〜87347 @ 118298〜115297〜200298〜189266〜128265〜117299 @ 222352 〜268353〜264340〜219342〜225355 186262 @〜199299〜212297〜195257〜188260

和陣列是:

「87348」, 「51347」, 「135132」, 「182133」, 「268346」, 「236347」, 「159168」, 「87347 @ 118298」, 「115297」, 「200298」, 「189266 」 「128265」, 「117299 @ 222352」, 「268353」, 「264340」, 「219342」, 「225355 @ 186262」, 「199299」, 「212297」, 「195257」 , 「188,260」

但我想再次用@解析創建一個數組。請幫我...........

+0

問題由隱形人/女人問。 – Bastardo 2011-06-14 07:44:04

+0

請不要提出重複的問題,我已將第二個問題合併到此。 – 2011-07-08 01:46:32

回答

0
for (NSString *string in array) { 
    NSArray *subArray = [string componentsSeparatedByString:@"@"]; 
    for (NSString *substring in subArray) 
     etc. etc. 

(下一次嘗試讓你的問題更好的格式化和鉸接式請)

0

而不是使用componentsSeparatedByString的:,使用componentsSeparatedByCharactersInSet:並用你想要的分隔符創建一個字符集。另外,你正在創建一個數組(array = [[NSArray alloc] init]),當你做array = [content componentsSeparatedByString:@「@」]時,你正在泄漏剛分配的數組。一般來說,似乎你應該閱讀更多關於對象和引用是如何工作的。

+0

爲了從數組中恢復我使用保留也,直到這完全working.please給我的代碼再次分割得到的數組〜 – Kavya 2011-06-14 07:49:05

+0

我給你所有你需要在我的第一句話的代碼。如果你不能使用我給你的東西,那麼你不應該這樣做。即使你保留了,你仍然在泄漏,因爲你將「數組」指向一個內存位置,初始化該內存位置,然後將它指向其他位置,以便第一個內存位置仍然被分配,並且沒有人正在使用它或釋放它。 – EmilioPelaez 2011-06-14 07:58:23

0

我想從下面的代碼,你可能會得到一些想法,如果我理解正確你的問題,

NSMutableArray *resultArray = [[NSMutableArray alloc] initWithCapacity:1]; 
    NSArray *tempArray1 = nil; 
    NSArray *tempArray2 = nil; 
    NSString *content = @"87,348~51,347~135,132~182,133~268,346~236,347~159,168~87,[email protected],298~115,297~200,298~189,266~128,265~117,[email protected],352~268,353~264,340~219,342~225,[email protected],262~199,299~212,297~195,257~188,260"; 
    tempArray1 = [content componentsSeparatedByString:@"@"]; 
    for(NSString *string in tempArray1) 
    { 
     tempArray2 = [string componentsSeparatedByString:@"~"]; 
     [resultArray addObjectsFromArray:tempArray2]; 
    } 

    NSLog(@"ResultArray :%@", resultArray);