iOS判断一个字符串中是否都是数字

本文介绍三种iOS中判断字符串是否全为数字的有效方法:利用NSScanner进行类型判断、通过循环遍历字符逐一验证以及采用NSString的trimming特性实现。这些方法可以帮助开发者在iOS应用中实现对用户输入的有效性校验。
[objc]  view plain  copy
  1. 第一种方式是使用NSScanner:  
  2. 1. 整形判断  
  3. - (BOOL)isPureInt:(NSString *)string{  
  4. NSScanner* scan = [NSScanner scannerWithString:string];   
  5. int val;   
  6. return [scan scanInt:&val] && [scan isAtEnd];  
  7. }  
  8.    
  9. 2.浮点形判断:  
  10. - (BOOL)isPureFloat:(NSString *)string{  
  11. NSScanner* scan = [NSScanner scannerWithString:string];   
  12. float val;   
  13. return [scan scanFloat:&val] && [scan isAtEnd];  
  14. }  
  15. 第二种方式是使用循环判断  
  16. - (BOOL)isPureNumandCharacters:(NSString *)text   
  17. {   
  18.     for(int i = 0; i < [text length]; ++i) {  
  19.         int a = [text characterAtIndex:i];   
  20.         if ([self isNum:a]){  
  21.             continue;   
  22.         } else {   
  23.             return NO;   
  24.         }   
  25.     }   
  26.     return YES;   
  27. }  
  28. 或者 C语言中常用的方式.  
  29. - (BOOL)isAllNum:(NSString *)string{  
  30.     unichar c;  
  31.     for (int i=0; i<string.length; i++) {  
  32.         c=[string characterAtIndex:i];  
  33.         if (!isdigit(c)) {  
  34.             return NO;  
  35.         }  
  36.     }  
  37.     return YES;  
  38. }  
  39. 第三种方式则是使用NSString的trimming方法  
  40. - (BOOL)isPureNumandCharacters:(NSString *)string   
  41. {   
  42. string = [string stringByTrimmingCharactersInSet;[NSCharacterSet decimalDigitCharacterSet]];  
  43. if(string.length > 0)   
  44. {  
  45.      return NO;  
  46. }   
  47. return YES;  
  48. }  
  49. 以上三种能够帮助实现判断是否为数字的函数,iOS中没有直接判断是否是数字的方法,所以只能够自己添加方法去实现了.  
不同的编程语言有不同的判断字符串是否为全数字的方法,以下是几种常见编程语言的实现方式: ### Java 在 Java 中可以使用正则表达式来判断字符串是否为全数字,示例代码如下: ```java public class Main { public static boolean isNumeric(String str) { return str.matches("-?\\d+(\\.\\d+)?"); } public static void main(String[] args) { System.out.println(isNumeric("123")); System.out.println(isNumeric("123abc")); } } ``` ### JavaScript 在 JavaScript 中可以使用 `isNaN` 和 `parseFloat` 结合的方法来判断,示例代码如下: ```javascript function isNumeric(value) { return!isNaN(parseFloat(value)) &&!isNaN(value); } console.log(isNumeric("+123.12")); console.log(isNumeric("123abc")); ``` 也可以使用 `isFinite` 和 `parseFloat` 结合的方法: ```javascript function isNumeric(value) { return isFinite(parseFloat(value)); } console.log(isNumeric("+123.12")); console.log(isNumeric("123abc")); ``` ### C# 在 C# 中可以使用 `double.TryParse` 方法来判断,示例代码如下: ```csharp using System; class Program { static void Main() { string[] testStrings = { "67", "-90", "56.23", "-78.885", "a456", "7879_p" }; foreach (string str in testStrings) { double result; bool isNumber = double.TryParse(str, out result); Console.WriteLine($"{str} 是否数字 {isNumber}"); } } } ``` ### iOS(Objective - C) 在 iOS 的 Objective - C 中可以通过遍历字符串中的字符判断,示例代码如下: ```objc - (BOOL)isAllNum:(NSString *)string{ unichar c; for (int i = 0; i < string.length; i++) { c = [string characterAtIndex:i]; if (!isdigit(c)) { return NO; } } return YES; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值