2015-11-20 16 views
6

tôi đang cố gắng để có được nhân vật duy nhất từ ​​NSString, như "lịch sử", "Release", "tức giận". Tôi muốn đầu ra như 1) AI, mô hình, vâng, Ce, hoặc 2) Q, các, bắt đầu, 3) Crow, The, nhưng đầu ra là đến như 1) AI, g, b, t này, f , 2A) tham số, ví dụ, r, h, lắp đặt, vận hành, 3), tức là, r, s, mãlàm thế nào để có được nhân vật duy nhất từ ​​chuỗi trong ios cho ngôn ngữ Gujrati (ngôn ngữ khác)

tôi đã sử dụng như dưới đây:

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

    for (int i=0; i<strElement.length; i++) 
    { 
       NSString *str = [strElement substringWithRange:NSMakeRange(i, 1)]; 
       [array addObject:str]; 

    } 
    NSLog(@"%@",array); 

Chúng ta hãy strElement là "tức giận", sau đó tôi đã nhận ra như ક , ્ , ર , ો , ધ này Nhưng tôi cần đầu ra như thế này ક્રો,ધ

Có cách nào mà tôi có thể nhận được kết quả mong muốn? Bất kỳ phương pháp có sẵn trực tiếp trong iOS hoặc cần phải tạo ra nó bằng cách tự của tôi sau đó bất kỳ cách hoặc ý tưởng làm thế nào để tạo ra nó?

Any help is appreciated

Trả lời

6

Mã của bạn là giả định rằng mỗi nhân vật trong chuỗi là một giá trị duy nhất unichar. Nhưng nó không phải là. Một số ký tự Unicode được tạo thành từ nhiều unichar giá trị.

Các giải pháp là sử dụng rangeOfComposedCharacterSequenceAtIndex: thay vì substringWithRange: với chiều dài khoảng cố định 1.

NSString *strElement = @"ઐતિહાસિક પ્રકાશન ક્રોધ"; 
NSMutableArray *array = [[NSMutableArray alloc]init]; 

NSInteger i = 0; 
while (i < strElement.length) { 
    NSRange range = [strElement rangeOfComposedCharacterSequenceAtIndex:i]; 
    NSString *str = [strElement substringWithRange:range]; 
    [array addObject:str]; 
    i = range.location + range.length; 
} 

// Log the results. Build the results into a mutable string to avoid 
// the ugly Unicode escapes shown by simply logging the array. 
NSMutableString *res = [NSMutableString string]; 
for (NSString *str in array) { 
    if (res.length) { 
     [res appendString:@", "]; 
    } 
    [res appendString:str]; 
} 
NSLog(@"Results: %@", res); 

đầu ra này:

Kết quả: AI, mô hình, vâng, Ce, hoặc, Q, những, lời nói, không, Crow, các

+0

nhờ @rmaddy công việc này như một nét duyên dáng –

Các vấn đề liên quan