如何判断 一组字符 是不是纯数字?

1用正则表达式 

//是否是纯数字

+ (BOOL)isNumText:(NSString *)str{

    NSString * regex        = @"(/^[0-9]*$/)";

    NSPredicate * pred      = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];

    BOOL isMatch            = [pred evaluateWithObject:str];

    if (isMatch) {

        return YES;

    }else{

        return NO;

    }


}



具体正则对不对  还需要大家来看以下 


第二种 系统源生的 
我推荐第二种 


- (NSString *) trimming {

    

    return [self stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]];

}



    //判断是不是纯数字

    [NSCharacterSet decimalDigitCharacterSet];

    if ([[textField.text stringByTrimmingCharactersInSet: [NSCharacterSet decimalDigitCharacterSet]]trimming].length >0) {

        DLog(@"不是纯数字");

    }else{

        DLog(@"纯数字!");

    }




### C++ 中判断字符串是否为数字 在 C++ 中有多种方法可以用来判断一个字符串是否表示一个有效的数字。以下是几种常见的实现方式: #### 使用标准库函数 `std::stringstream` 通过尝试将字符串转换成浮点数或整数来验证其有效性。 ```cpp #include <iostream> #include <sstream> bool isNumeric(const std::string& str) { std::istringstream iss(str); double num; char leftover; // 尝试读取整个字符串作为一个数字 if (!(iss >> num)) return false; // 转换失败 // 检查是否有未被解析的字符剩余 if (iss >> leftover) return false; // 存在多余字符 return true; } ``` 此方法利用了输入流操作符重载特性,能够处理带符号和不带符号的整数以及浮点数[^1]。 #### 利用正则表达式匹配 对于更复杂的模式识别需求,比如科学计数法等形式的数值串,可以考虑采用正则表达式的方案。 ```cpp #include <regex> bool isNumericRegex(const std::string& str) { static const std::regex pattern(R"(^\s*[+-]?(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?\s*$)"); return std::regex_match(str, pattern); } ``` 这种方法不仅支持基本类型的数字格式,还涵盖了指数形式和其他特殊情况下的合法数值表示[^2]。 #### 基于逐位检验的方式 如果只需要简单地确认给定字符串由阿拉伯数字组成而不需要区分其他类型的数据(如浮点),那么可以直接遍历每一个字符并调用`isdigit()`来进行测试。 ```cpp #include <cctype> // For isdigit() bool isPureDigits(const std::string& str) { for(char ch : str){ if(!isdigit(ch)){ return false; } } return !str.empty(); } ``` 上述三种技术各有优劣,在实际应用时可以根据具体场景选择最合适的一种或者组合使用以满足特定的需求[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值