是否可以在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. serialport單獨讀取每個字符
- 2. 如何讀取Java中每個數字的每個數字
- 3. 如何通過字符串中的每個字符來分割NSString?
- 4. 如何從BitInputStream中讀取每個字符的位數隨每個字符的變化而變化
- 5. 從一個特殊字符分隔的NSString中提取兩個字符串
- 6. 每個字節讀取陣列字節
- 7. 逐個讀取文件中的字符
- 8. 檢查nsstring中的多個字符
- 9. 從某個字符讀取字符串
- 10. 的ASP.NET Web API - 讀取查詢字符串/ FORMDATA每個請求
- 11. 如何讀取每行的第一個字符
- 12. StringBuilder - 讀取N個字符
- 13. NSString中的編碼字符
- 14. NSString中的換碼字符
- 15. NSString中的特殊字符
- 16. 替換NSString中的字符
- 17. JAVA:從字符串中讀取字符串到某個字符
- 18. 提取NSString中兩個子字符串之間的文本
- 19. 如何獲取NSString的字符?
- 20. 從NSString獲取特定的字符串
- 21. 獲取本月每個NSDate作爲NSString
- 22. 閱讀CSV文件每兩個字符
- 23. Tcl獲取字符串中每個字符的ASCII碼
- 24. 如何獲取NSString中的數字(包含數字和字符)?
- 25. 在C中讀取兩個字符#
- 26. 獲取每個單詞的第一個字符的字符串
- 27. 從c文本文件每次讀取一個字符中的數字,字母和特殊字符#
- 28. 如何從NSString中提取前3個字符?
- 29. 獲取字符串的每個組合
- 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