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

How to split a string using "-" keyword ?

这是我的字符串,我喜欢用特殊字符“-”拆分它

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

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

我用你的字符串试过的只是检查

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

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

用你的字符串试试这个。

如果你得到 \n 然后通过检查 NSCharacterSet

从数组中删除它

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

尝试使用 :

将它们分开
NSArray* components = [str componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
NSMutableArray *finalComponents = [[NSMutableArray alloc] init];

for (NSString* strToken in components) {
    [finalComponents addObject:[strToken componentsSeparatedByString:@" - "]];
}
// 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);

}

输出:

-

I have removed the spacing between the hindi words because that's disturbing the logic, any how if you will able to put the different separator between words
Eg: if you used "," as separator then you will string will become as
NSString *hindi = @"hi - नमस्ते,Hindi - हिन्दी,Telugu - तेलुगु,how - कैसे,are - हैं,you - आप,go - जाना,going- जा रहा,translate - अनुवाद करना,good - अच्छा";

then replace logic in above code as:

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

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