我有一堆NSStrings,我希望从中获取第一个字符并在A-Z和#中匹配它们作为一个捕获所有不适用的东西。
不同的字形(我相信在一些维基之后是正确的字)一直给我带来麻烦。例如,我想从“Æ”中提取A.
我看过CFStringTransform,规范化并弃牌,但没有一个能达到预期的效果。
有可靠的方法吗?我正在使用的所有字符串都是UTF8,如果这有所不同的话。
答案 0 :(得分:3)
Æ不能分解成组件。它不是A + E的复合字形,而是一个单独的字形。复合字形就像是一个+`
答案 1 :(得分:1)
关于“Æ”的事情是它本身就是一个ascii角色。不是两个不同字符的组合,因此您无法从中提取A,因为它只有1个字符。
编辑:
虽然您可以执行检查以查看字符串是否等于“Æ”,并且如果它确实告诉它将其切换为“A”或将其转换为其dec,则形成并减去81会给出“A”
答案 2 :(得分:1)
你想摆脱所有æ?
如果你这样做,这应该有用。
NSString *string = @"Æaæbcdef";
string = [string stringByReplacingOccurrencesOfString:@"æ" withString:@"a"];
string = [string stringByReplacingOccurrencesOfString:@"Æ" withString:@"A"];
重读,你似乎只想要第一个角色:
NSString *string = @"Æaæbcdef";
NSString *firstChar = [string substringToIndex:1];
firstChar = [firstChar stringByReplacingOccurrencesOfString:@"æ" withString:@"a"];
firstChar = [firstChar stringByReplacingOccurrencesOfString:@"Æ" withString:@"A"];
NSString *finalString = [NSString stringWithFormat:@"%@%@", firstChar, [string substringFromIndex:1]];