如何使用“ - ”关键字拆分字符串?

时间:2016-04-14 07:11:13

标签: ios objective-c nsstring

这是我的字符串我想用特殊字符“ - ”

拆分它
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

分别获取值的确切方法是什么。

3 个答案:

答案 0 :(得分: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);

}

输出: enter image description here

-

  

我删除了印地语单词之间的间距,因为那是   扰乱逻辑,如果你能够把不同的东西怎么办   单词之间的分隔符
  例如:如果您使用“,”作为分隔符,那么您   将字符串变为
   NSString * hindi = @“hi - नमस्ते,Hindi -   हिन्दी,Telugu - तेलुगु,how - कैसे,are - हैं,you - आप,go - जाना,going-   जारहा,翻译 - अनुवादकरना,good - अच्छा“;

     

然后将上面代码中的逻辑替换为:

     

hindi = [hindi stringByReplacingOccurrencesOfString:@“ - ”withString:@“,”];

     

NSArray * mixArray = [hindi componentsSeparatedByString:@“,”];

答案 1 :(得分:0)

我尝试过你的字符串只需检查

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

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

用你的字符串试试这个。

如果你正在获取\ n然后通过检查NSCharacterSet

将其从数组中删除

答案 2 :(得分:0)

在每次翻译后,您的输入看起来都包含换行符。

尝试使用以下方法将它们分开:

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

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