我有一个包含单词和数字的字符串.如何从字符串中提取该数字?
NSString *str = @"This is my string. #1234";
我想能够剥离1234作为一个整数.字符串将有不同的数字和单词,每次我搜索它.
思想?
我有一个包含单词和数字的字符串.如何从字符串中提取该数字?
NSString *str = @"This is my string. #1234";
我想能够剥离1234作为一个整数.字符串将有不同的数字和单词,每次我搜索它.
思想?
以下是一个基于NSScanner的解决方案:
// Input
NSString *originalString = @"This is my string. #1234";
// Intermediate
NSString *numberString;
NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet *numbers = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"];
// Throw away characters before the first number.
[scanner scanUpToCharactersFromSet:numbers intoString:NULL];
// Collect numbers.
[scanner scanCharactersFromSet:numbers intoString:&numberString];
// Result.
int number = [numberString integerValue];
这里所做的(许多)假设中的一些:
int
.或者,您可以直接扫描到int
:
[scanner scanUpToCharactersFromSet:numbers intoString:NULL];
int number;
[scanner scanInt:&number];
如果#
标记字符串中数字的开头,可以通过以下方式找到:
[scanner scanUpToString:@"#" intoString:NULL];
[scanner setScanLocation:[scanner scanLocation] + 1];
// Now scan for int as before.