Ios 检查字符串是否包含大于的数字

Ios 检查字符串是否包含大于的数字,ios,objective-c,Ios,Objective C,我有以下NSString: NSString *testString=@"megaUser 35 youLost 85 noob 10 showTime 36 pwn 110" 我想知道这个字符串是否包含大于80的数字。我不需要知道在哪里,有多少或实际的数字是什么,只需要一个布尔值(是或否)。我曾考虑过重新设置字符串以删除字符串中除数字以外的所有内容,但在此之后,我不确定执行检查的有效方法是什么 换句话说,有没有一种解决方案不需要将字符串分解为数组组件,然后一次检查一个组件?如果有人知道如何做

我有以下NSString:

NSString *testString=@"megaUser 35 youLost 85 noob 10 showTime 36 pwn 110"
我想知道这个字符串是否包含大于80的数字。我不需要知道在哪里,有多少或实际的数字是什么,只需要一个布尔值(是或否)。我曾考虑过重新设置字符串以删除字符串中除数字以外的所有内容,但在此之后,我不确定执行检查的有效方法是什么

换句话说,有没有一种解决方案不需要将字符串分解为数组组件,然后一次检查一个组件?如果有人知道如何做到这一点,请让我知道


谢谢大家!

您可以使用扫描仪进行以下操作:

// The string to parse
NSString *testString=@"megaUser 35 youLost 85 noob 10 showTime 36 pwn 110";

// Create a new scanner for this string and tell it to skip everything but numbers
NSScanner *scanner = [[NSScanner alloc] initWithString:testString];
NSCharacterSet *nonNumbers = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
[scanner setCharactersToBeSkipped:nonNumbers];

// Scan integers until we get to the end of the string
// If you will have numbers larger than int, you can use long long and scanLongLong for larger numbers
int largestNumber = 0, currentNumber = 0;
while ([scanner scanInt:&currentNumber] == YES)
{
    if (currentNumber > largestNumber)
        largestNumber = currentNumber;
}

// See if the number is larger than 80
if (largestNumber > 80)
    return YES;

// Nope
return NO;

谢谢你的快速回复。我要试一试。你能告诉我这是否是资源密集型的吗?再次感谢!它可能与不解析C字符串的情况下的速度一样快,即使这样,您也可能不会获得很多好处。如果您正在做成千上万个这样的10个,那么分析不同的方法以了解什么是最快的方法是值得的,否则这将是更好的方法之一。我的示例展示了一些解析字符串的不同方法以及它们的相对速度(它们并不都是直接适用的,但您将大致了解不同的方法以及它们的速度)。