Bea*_*red 1 iphone nsstring ipad ios
我正在深入研究iOS开发,我仍然熟悉NSString对象.我正处于需要计算字符串中非字母数字字符数的位置.我想出的一种方法是从字符串中剥离非字母数字字符,然后从原始字符串的长度中减去剥离字符串的长度,就像这样......
NSCharacterSet *nonalphanumericchars = [[NSCharacterSet alphanumericCharacterSet ] invertedSet];
NSString *trimmedString = [originalString stringByTrimmingCharactersInSet:nonalphanumericchars];
NSInteger numberOfNonAlphanumericChars = [originalString length] - [trimmedString length];
Run Code Online (Sandbox Code Playgroud)
但它不起作用.计数始终为零.如何计算NSString对象中的非字母数字字符数?
非常感谢你的智慧!
你的方法的问题是你没有剥离角色,你正在修剪它们.这意味着只从符合集合的字符串末尾剥离字符(中间没有任何内容).
为此,您可以迭代字符串并测试每个字符不是字母数字集的成员.例如:
NSString* theString = // assume this exists
NSMutableCharacterSet* testCharSet = [[NSMutableCharacterSet alloc] init];
[testCharSet formUnionWithCharacterSet:[NSCharacterSet alphanumericCharacterSet]];
[testCharSet formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
NSUInteger length = [theString length];
NSUInteger totalNonAlnumCharacters = length;
for( NSUInteger i = 0; i < length; i++ ) {
if( [testCharSet characterIsMember:[theString characterAtIndex:i]] )
totalNonAlnumCharacters--;
}
NSLog(@"Number of non-alphanumeric characters in string: %lu", (long int)totalNonAlnumCharacters);
[testCharSet release];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3042 次 |
| 最近记录: |