我的文本视图已经从网站中提取了文本。所以,让我们说文本视图中的文本有这样的文字:
Save Location
84°F
Clear
Feels like 90°F
在本文中,如何将“84°F”中84的文本提取为字符串?请记住,84是来自网站的不断变化的变量,所以有时它将是一个不同的数字,我不能直接搜索数字。如果你知道怎么做,请告诉我:)谢谢你的时间。
答案 0 :(得分:3)
尝试这样的事情:
NSString *originalString = @"Save Location 84°F Clear Feels like 90°F";
NSMutableString *stringWithNums = [NSMutableString stringWithCapacity:originalString.length];
NSScanner *scanner = [NSScanner scannerWithString:originalString];
NSCharacterSet *numbers = [NSCharacterSet
characterSetWithCharactersInString:@"0123456789"];
while ([scanner isAtEnd] == NO) {
NSString *buffer;
if ([scanner scanCharactersFromSet:numbers intoString:&buffer]) {
[stringWithNums appendString:buffer];
} else {
[scanner setScanLocation:([scanner scanLocation] + 1)];
[stringWithNums appendString:@" "];
}
}
现在stringWithNums
将包含以下内容:
84(某些空格)90
然后你可以像这样解析stringWithNums
:
NSArray *tempArray = [stringWithNums componentsSeparatedByString: @" "];
NSString *finalTemperature;
for(int index = 0; index < [tempArray count]; index++){
if([[tempArray objectAtIndex:index] intValue] != 0 && [[tempArray objectAtIndex:index] intValue] < 200){
finalTemperature = [tempArray objectAtIndex: index];
break;
}
}
finalTemperature
将包含“84”。您可以将其放在方法表单中并传入originalString
作为参数,以便您可以重用此代码。希望这会有所帮助,如果您有任何疑问,请务必在评论中提问!
更新: 我添加了这一行: &安培;&安培; [[tempArray objectAtIndex:index] intValue]&lt; 200
到上面的if语句,所以它现在看起来像这样:
if([[tempArray objectAtIndex:index] intValue] != 0 && [[tempArray objectAtIndex:index] intValue] < 200){
在网站文字中,它看起来像“82”之前的唯一数字是一个5位数的邮政编码。实际上,所有温度(地球上)都低于200(3位数),因此我输入的额外线路确保最终温度为三位或更少的数字而不是5位数的邮政编码。
希望这有帮助!