2016-04-14 32 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:@" - "]]; 
}