2016-04-14 34 views
1

這是我的字符串我喜歡來分割使用特殊字符爲「 - 」如何使用「 - 」關鍵字分割字符串?

hi - नमस्ते 
Hindi - हिन्दी 
Telugu - तेलुगु 
how - कैसे 
are - हैं 
you - आप 
go - जाना 
going - जा रहा 
translate - अनुवाद करना 
good - अच्छा 

什麼我嘗試:

[strFileContent enumerateSubstringsInRange:NSMakeRange(0, strFileContent.length) 
               options:NSStringEnumerationByWords 
              usingBlock: 
      ^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) { 
       checking=substring; 
       NSLog(@"this is my splitting values =%@",substring); 

      }]; 

如果我做了上述方法的每個字分別得到,這樣繼續的話讓剎車爲例如翻譯 - 可以這個詞獲取剎車。

2)[arrcheck addObject:[strFileContent componentsSeparatedByString:@"-"]];

如果我沒有方法2則\ n獲取添加

"Tamil ", 
     " \U0924\U093e\U092e\U093f\U0932 
\nhi ", 
     " \U0928\U092e\U0938\U094d\U0924\U0947 
\nHindi ", 
     " \U0939\U093f\U0928\U094d\U0926\U0940 
\nTelugu ", 
     " \U0924\U0947\U0932\U0941\U0917\U0941 
\nhow ", 
     " \U0915\U0948\U0938\U0947 
\nare ", 
     " \U0939\U0948\U0902 
\nyou ", 
     " \U0906\U092a 
\ngo ", 
     " \U091c\U093e\U0928\U093e 
\ngoing ", 
     " \U091c\U093e \U0930\U0939\U093e 
\ntranslate ", 
     " \U0905\U0928\U0941\U0935\U093e\U0926 \U0915\U0930\U0928\U093e 

什麼是確切的方式分別獲得價值。

+0

你檢查了componentsSeparatedByString方法的字符串? –

+0

你的字符串最初包含什麼? –

+0

@SuhasPatil包含此值您好我的srting - नमस्ते 印地文 - हिन्दी 泰盧固語 - तेलुगु 如何 - कैसे 是 - हैं 你 - आप 去 - जाना 去 - जारहा 翻譯 - अनुवादकरना 好 - अच्छा –

回答

1
// ORIGINAL STRING: NSString *hindi = @"hi - नमस्ते Hindi - हिन्दी Telugu - तेलुगु how - कैसे are - हैं you - आप go - जाना going - जा रहा translate - अनुवाद करना good - अच्छा"; 

-

NSString *hindi = @"hi - नमस्ते Hindi - हिन्दी Telugu - तेलुगु how - कैसे are - हैं you - आप go - जाना going - जारहा translate - अनुवादकरना good - अच्छा"; 


hindi = [hindi stringByReplacingOccurrencesOfString:@"- " withString:@""]; 

NSArray *mixArray = [hindi componentsSeparatedByString:@" "]; 
NSLog(@"mixArray: %@",mixArray); 


NSMutableArray *arrayForEnglishWords = [[NSMutableArray alloc]init]; 

for (int i =0 ; i < mixArray.count; i++) { 

    if(i%2 == 0){ 

     [arrayForEnglishWords addObject:mixArray[i]]; 
    } 
} 


for (NSString *str in arrayForEnglishWords) { 

     NSLog(@": %@",str); 

} 

NSLog(@"__________________"); 

NSMutableArray *arrayForHindiWords = [[NSMutableArray alloc]init]; 

for (int i =0 ; i < mixArray.count; i++) { 

    if(i%2 != 0){ 

     [arrayForHindiWords addObject:mixArray[i]]; 
    } 
} 

for (NSString *str in arrayForHindiWords) { 

    NSLog(@": %@",str); 

} 

OUTPUT: enter image description here

-

我已刪除的印地文的字間距,因爲這是 擾亂邏輯,任何如何,如果你將能夠把字與字之間的不同 分離
例如:如果你使用「」作爲分隔符,那麼你 意志字符串變得
的NSString *印地文= @「嗨 - नमस्ते,印地文 - हिन्दी,泰盧固語 - तेलुगु,如何 - कैसे,是 - हैं,你 - आप,去 - जाना,going- जारहा,翻譯 - अनुवादकरना,好 - 非常好「;

然後在上面的代碼替換的邏輯:

印地文= [印地文stringByReplacingOccurrencesOfString:@ 「 - 」 withString:@ 「」];

NSArray * mixArray = [hindi componentsSeparatedByString:@「,」];

+0

我想你也可以使用「\ n」作爲分隔符,因爲你的有,檢查它! –

0

什麼我都與你的字符串嘗試過檢查

NSString *hindi = @"hi - नमस्ते Hindi - हिन्दी Telugu - तेलुगु how - कैसे are - हैं you - आप go - जाना going - जा रहाtranslate - अनुवाद करना good - अच्छा"; 

NSArray *separr = [hindi componentsSeparatedByString:@"-"]; 

嘗試像這樣與你的字符串。

如果您收到\ n然後通過檢查NSCharacterSet

+0

是啊試過這個,但/ n來... –

+0

你可以刪除\ n字符與NSCharacterSet換行符\ –

+0

好吧,我會盡力讓你知道 –

0

看起來像你的輸入包含每個翻譯後的新行從陣列中刪除。

嘗試將它們分開使用:

NSArray* components = [str componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; 
NSMutableArray *finalComponents = [[NSMutableArray alloc] init]; 

for (NSString* strToken in components) { 
    [finalComponents addObject:[strToken componentsSeparatedByString:@" - "]]; 
}