QT C++ 判断字符串是否是一个数字

1、使用 QRegularExpression

带入正则表达式来匹配目标字符串是否符合数字结构,以此来判断,代码如下:

cpp 复制代码
bool isPureNumber(const QString &arg1) {
    // 使用正则表达式来检查是否为纯数字 0-9
    QRegularExpression re("^\\d+$");

    // 匹配整数和小数,允许负号开头
    //QRegularExpression re("^-?\\d*\\.?\\d+$");
    return re.match(arg1).hasMatch();
}

2、使用 QString::toDouble() 或 QString::toInt()

函数带入一个bool类型的参数地址可以得到转换结果,以此来判断是否是数字。

cpp 复制代码
bool isNumber(const QString &arg1) {
    bool ok;
    arg1.toDouble(&ok);  // 转换为 double 以检查有效性
    // arg1.toInt(&ok);  // 转换为 int 以检查有效性
    return ok;
}

3、使用 QString::contains() 和 QRegularExpression配合

使用了QRegularExpression类,同样关键在于正则表达式,也是以此来匹配,只不过这里使用contains函数来检测结构。

cpp 复制代码
bool isPureNumber(const QString &arg1) {
    // 使用正则表达式匹配
    //return !arg1.isEmpty() && arg1.contains(QRegularExpression("^\\d+$"));  //0-9

    return !arg1.isEmpty() && arg1.contains(QRegularExpression("^-?\\d*\\.?\\d+$"));
}

4、结语

以上就是本人一般会用到的判断一个字符串是否是数字的方法了,这里全部封装好了函数,可以根据实际情况做稍微修改来达到你自己的预期效果。

相关推荐
2401_889884666 分钟前
嵌入式C++测试框架
开发语言·c++·算法
1104.北光c°6 分钟前
我理解的Leaf号段模式:美团分布式ID生成系统
java·开发语言·笔记·分布式·github·leaf
DREW_Smile10 分钟前
字符函数和字符串函数2
c语言·开发语言
wjs202422 分钟前
CSS 颜色
开发语言
无巧不成书021824 分钟前
Java数值字面量速查表
java·开发语言·python·开发者·字面量
小鸡吃米…24 分钟前
测试线程应用程序
开发语言·python
python开发笔记25 分钟前
python(79) 底层代码追踪工具
开发语言·python
kgduu25 分钟前
js之错误处理
开发语言·前端·javascript
Bert.Cai26 分钟前
Python函数的定义与调用
开发语言·python
美式请加冰28 分钟前
模拟的介绍和使用
java·开发语言·算法