我只是想知道如何确定NSString的第一个字符是否是一个数字。确定NSString的第一个字符是否是一个数字
回答
BOOL hasLeadingNumberInString(NSString* s) {
if (s)
return [s length] && isnumber([s characterAtIndex:0]);
else
return NO;
}
在吨他一次处理许多NSString事件(如循环数组),并且您希望检查每一个格式(如前导数字),因此最好包含检查以便不尝试评估空字符串或不存在的字符串。
实施例:
NSString* s = nil; //Edit: s needs to be initialized, at the very least, to nil.
hasLeadingNumberInString(s); //returns NO
hasLeadingNumberInString(@""); //returns NO
hasLeadingNumberInString(@"0123abc"); //returns YES
检查返回值:
[myString rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]];
如果返回范围的location
价值0
,你有一个匹配的第一个字符。
这可能是长串很慢,并且如果用户输入stting它可以是任何长度。 (请参见order(N)comment) – 2011-03-06 00:55:40
您是否确实检查过该方法是否扫描整个字符串?如果它真的执行的确很糟糕。从文档:“查找并返回给定字符集中第一个字符的接收器范围。”听起来我喜欢它一旦找到匹配就停下来。 – 2011-03-06 10:02:58
关于它的更多思考,至少如果第一个字符有正面匹配,我上面所说的应该是真实的。如果不是,则字符串确实会被完全解析(在最糟糕的情况下,当整个字符串中没有匹配时)。 – 2011-03-06 10:13:14
是的。你可以这样做:
NSString *s = ...; // a string
unichar c = [s characterAtIndex:0];
if (c >= '0' && c <= '9') {
// you have a number!
}
甚至isdigit([s characterAtIndex:0])? – Tommy 2011-03-05 19:30:12
我可以想到两种方法来做到这一点。你可以使用
[string rangeOfCharacterFromSet:[NSCharacterSet decimalDigitCharacterSet]].location == 0
或者你可以使用
[[NSCharacterSet decimalDigitCharacterSet] characterIsMember:[string characterAtIndex:0]]
而不是使用它可以扫描整个字符串的电话,最好是拉出第一个字符,然后看看它是什么:
char test = [myString characterAtIndex:0];
if (test >= '0' && test <= '9')
return YES
else
return NO
- 1. 如何确定一个的NSString的第一个字符是字母
- 2. C++如何确定char是否是一个字中的第一个字符
- 3. 如何确定一个字符串是否是ksh的数字
- 4. 函数检查字符串的第一个字符是否是一个字母
- 5. 检查一个NSString是否是一个html字符串?
- 6. 确定是否一个字符串包含一个字
- 7. 确定一个字符串是不是另一个字符串
- 8. 检查NSString的最后一个字符是否为数字
- 9. C#如何确定一个数字是否是另一个数字的倍数?
- 10. 函数来确定一个字符串是否只包含另一个字符
- 11. 如果语句检查第一个字符是否是数字
- 12. NSPredicate测试NSString是否包含另一个NSString中的字符
- 13. 检查一个nsstring是否与另一个字符串匹配
- 14. 确定一个字符串是否包含数字序列
- 15. 确定第一个数字
- 16. 如何确定字符串的第一个字符是否是VB.NET中的数字?
- 17. 如何找出字符串的第一个字符是否是数字?
- 18. 确定字符串是否以另一个字符串结尾
- 19. 无法确定一个字符串当前是否是一个整数
- 20. 如何确定一个字符串是否包含非字母数字字符?
- 21. 熊猫:确定一个条目中的第一个字符是字母还是数字
- 22. 如何确定一个字符串是否包含另一个字符串
- 23. 确定一个字符串是否包含另一个字符串
- 24. 确定一个字符串是否包含一个子字符串
- 25. PHP检查字符串的第一个数字是否为1?
- 26. 确定一个字符串是否是有效的HTML代码
- 27. Base64是一个NSString而不是一个字符串
- 28. 判断一个字符串是否是另一个子字符
- 29. 如何确定一个字符串是否是C#中的数字
- 30. C-检查第一个命令行参数中的第一个字符是否包含特定的字符
我喜欢这个。当意外的零或零长度的字符串出现时,许多应用程序崩溃。开发人员永远不会试图离开这个领域或其他古怪的东西。 – 2011-03-06 00:54:33
NSString * s; hasLeadingNumberInString(s); //返回NO不会起作用,因为s是一个随机数,而不是零。 (次要方法是正确的,只需要使用NSString * s = nil;对于测试。 – 2011-03-06 01:00:03
Tom是正确的。我的方法假定s至少初始化为零或其他。 – Beljoda 2011-03-07 18:36:30