nod*_*nja 68 cocoa-touch objective-c nsstring
我想从NSString中的某个地方获取一个角色.我希望结果是一个NSString.
这是我用来在索引处获取单个字符的代码:
[[s substringToIndex:i] substringToIndex:1]
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
Kri*_*kel 132
这也会将索引i处的字符检索为NSString,并且您只使用NSRange结构而不是额外的NSString.
NSString * newString = [s substringWithRange:NSMakeRange(i, 1)];
Run Code Online (Sandbox Code Playgroud)
jos*_*lmf 38
如果您只想从NSString中获取一个字符,可以试试这个.
- (unichar)characterAtIndex:(NSUInteger)index;
Run Code Online (Sandbox Code Playgroud)
像这样使用:
NSString *originalString = @"hello";
int index = 2;
NSString *theCharacter = [NSString stringWithFormat:@"%c", [originalString characterAtIndex:index-1]];
//returns "e".
Run Code Online (Sandbox Code Playgroud)
No *_*lar 23
您的建议仅适用于ASCII等简单字符.NSStrings存储unicode,如果你的角色是几个unichars,那么你最终可能会有胡言乱语.使用
- (NSRange)rangeOfComposedCharacterSequenceAtIndex:(NSUInteger)index;
Run Code Online (Sandbox Code Playgroud)
如果你想确定你的角色有多少个unichars.我用它来逐步检查字符串以确定字符边界的出现位置.
完全unicode功能是一项工作,但取决于您使用的语言.我看到很多亚洲文字,所以大多数角色从一个空间溢出,所以我需要做的工作.
归档时间: |
|
查看次数: |
66445 次 |
最近记录: |