Rui*_*pes 23 iphone compare nsstring
有没有人知道锄头将"ÁlgeBra"这样的NSString改为"代数",没有重音,只有首字母大写?
谢谢,
RL
Ole*_*ann 55
dreamlax已经提到了这种capitalizedString方法.NSData但是,我认为使用该stringByFoldingWithOptions:locale:方法更优雅,而不是进行有损转换以及删除重音字符.
NSString *accentedString = @"ÁlgeBra";
NSString *unaccentedString = [accentedString stringByFoldingWithOptions:NSDiacriticInsensitiveSearch locale:[NSLocale currentLocale]];
NSString *capitalizedString = [unaccentedString capitalizedString];
Run Code Online (Sandbox Code Playgroud)
根据要转换的字符串的性质,您可能希望设置固定的区域设置(例如英语),而不是使用用户的当前区域设置.这样,您可以确保在每台机器上获得相同的结果.
dre*_*lax 13
NSString有一个方法叫capitalizedString:
回报价值
带有接收器中每个字的第一个字符的字符串更改为其对应的大写值,并且所有剩余字符设置为其对应的小写值.
NSString *str = @"AlgeBra";
NSString *other = [str capitalizedString];
NSLog (@"Old: %@, New: %@", str, other);
Run Code Online (Sandbox Code Playgroud)
刚刚看到你想删除重音符号.您可以执行一系列步骤:
// original string
NSString *str = @"ÁlgeBra";
// convert to a data object, using a lossy conversion to ASCII
NSData *asciiEncoded = [str dataUsingEncoding:NSASCIIStringEncoding
allowLossyConversion:YES];
// take the data object and recreate a string using the lossy conversion
NSString *other = [[NSString alloc] initWithData:asciiEncoded
encoding:NSASCIIStringEncoding];
// relinquish ownership
[other autorelease];
// create final capitalized string
NSString *final = [other capitalizedString];
Run Code Online (Sandbox Code Playgroud)
dataUsingEncoding:allowLossyConversion:明确说明转换为ASCII时字母'Á'将转换为'A' 的文档.
| 归档时间: |
|
| 查看次数: |
5176 次 |
| 最近记录: |