我只是想知道如何確定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