是否可以在objective-c框架内标识NSString中特定字符的位置和存在?例如,如果我有NSString @“hello”,并且想知道char“e”的位置和存在,我将如何能够做到这一点?读取NSString中的每个字符
0
A
回答
2
有一个字符串中查找单个字符特定的方法,但你可以只搜索长度为1的子串的范围,并要求返回的范围内的位置,因为这样的:
NSRange charRange = [@"hello" rangeOfString:@"e"];
NSUInteger index = charRange.location;
if (index == NSNotFound) {
NSLog(@"substring not found");
}
你可以在这里找到完整文档:rangeOfString:
要找到你可能想要做这样的事情在@"hello"
所有@"e"
的指标,虽然:
NSString *haystack = @"hellol";
NSString *needle = @"l";
NSMutableIndexSet *indices = [NSMutableIndexSet indexSet];
NSUInteger haystackLength = [haystack length];
NSRange range = NSMakeRange(0, haystackLength);
NSRange searchRange = range;
while (range.location != NSNotFound) {
range = [haystack rangeOfString:needle options:0 range:searchRange];
if (range.location != NSNotFound) {
[indices addIndex:range.location];
NSUInteger searchLocation = range.location + 1;
NSUInteger searchLength = haystackLength - searchLocation;
if (searchLocation >= haystackLength) {
break;
}
searchRange = NSMakeRange(searchLocation, searchLength);
}
}
//indices now holds the indices of all occurrences of 'e' in "hello".
文档:NSMutableIndexSet,NSIndexSet
编辑:替换算法从在他的评论中所描述的这个答案@bbum的一个。
0
看看苹果文档NSString。
- (NSRange)rangeOfString:(NSString *)aString
相关问题
- 1. 如何从C#中的字符串中读取每个字符
- 2. serialport单独读取每个字符
- 3. QProcess将字符串中的每个字母单独读取
- 4. bash从文件中的每个字符串中读取一个字符
- 5. 获取NSString的前两个字符
- 6. 如何读取Java中每个数字的每个数字
- 7. 如何从java中的inputStream中读取每个字符串
- 8. 将一个NSString中的字符替换为另一个NSString中的字符
- 9. 读取字符串中的每个单词C++
- 10. 如何将NSString的每个字符添加到NSArray中?
- 11. 如何通过字符串中的每个字符来分割NSString?
- 12. 读取字的函数只读取每隔一个字母
- 13. 如何从BitInputStream中读取每个字符的位数随每个字符的变化而变化
- 14. 从一个特殊字符分隔的NSString中提取两个字符串
- 15. 每个字节读取阵列字节
- 16. 如何从字符串中读取每个字符NASM程序集64bit linux
- 17. 逐个读取文件中的字符
- 18. 从NSString中提取字符串
- 19. 检查nsstring中的多个字符
- 20. 从C中的一个字符串中逐字符的读取
- 21. 多个字符串在一个NSString中
- 22. vb.net读取字符串某个字符
- 23. 从某个字符读取字符串
- 24. 的ASP.NET Web API - 读取查询字符串/ FORMDATA每个请求
- 25. 如何读取每行的第一个字符
- 26. StringBuilder - 读取N个字符
- 27. NSString中的换码字符
- 28. NSString中的编码字符
- 29. 替换NSString中的字符
- 30. NSString中的特殊字符
...如果没有'e',你会得到'NSNotFound'的位置。 – Tommy 2011-04-19 21:34:24
是的,只是在你评论时加入到我的回答中。 ;) – Regexident 2011-04-19 21:36:42
如果我改为messaged:'[@“hello”rangeOfString:@“l”]''会返回'index' – locoboy 2011-04-19 21:47:15