如何从古吉拉特语(其他语言)的 ios 字符串中获取单个字符
how to get single characters from string in ios for Gujrati language(other language)
我正在尝试从 NSString
中获取单个字符,例如 "historical","publication","anger"。我想要像 1)Ai,Ti,Ha,Si,K 2) Q,Ka,Sh,N 3) Cro,D 这样的输出,但是输出是这样的 1) Ai, T, D, H, R, K 2) P, P, R, K, A, Sh, N 3) K, D, R, R, D
我使用了如下代码:
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);
让我们把strElement
当作“愤怒”然后我得到这样的输出ક , ્ , ર , ો , ધ
但我需要这样的输出 ક્રો,ધ
有什么方法可以获得我想要的输出吗?任何直接在 iOS 中可用的方法或需要自己创建它的方法或想法如何创建它?
感谢任何帮助
您的代码假设字符串中的每个字符都是一个 unichar
值。但事实并非如此。一些 Unicode 字符由多个 unichar
值组成。
解决方案是使用 rangeOfComposedCharacterSequenceAtIndex:
而不是 substringWithRange:
,固定范围长度为 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);
这输出:
Results: ઐ, તિ, હા, સિ, ક, , પ્ર, કા, શ, ન, , ક્રો, ધ
我正在尝试从 NSString
中获取单个字符,例如 "historical","publication","anger"。我想要像 1)Ai,Ti,Ha,Si,K 2) Q,Ka,Sh,N 3) Cro,D 这样的输出,但是输出是这样的 1) Ai, T, D, H, R, K 2) P, P, R, K, A, Sh, N 3) K, D, R, R, D
我使用了如下代码:
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);
让我们把strElement
当作“愤怒”然后我得到这样的输出ક , ્ , ર , ો , ધ
但我需要这样的输出 ક્રો,ધ
有什么方法可以获得我想要的输出吗?任何直接在 iOS 中可用的方法或需要自己创建它的方法或想法如何创建它?
感谢任何帮助
您的代码假设字符串中的每个字符都是一个 unichar
值。但事实并非如此。一些 Unicode 字符由多个 unichar
值组成。
解决方案是使用 rangeOfComposedCharacterSequenceAtIndex:
而不是 substringWithRange:
,固定范围长度为 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);
这输出:
Results: ઐ, તિ, હા, સિ, ક, , પ્ર, કા, શ, ન, , ક્રો, ધ