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、结语

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

相关推荐
BioRunYiXue5 分钟前
Nature Methods:CellVoyager 自主 AI 智能体开启生物数据分析新时代
大数据·开发语言·前端·javascript·人工智能·数据挖掘·数据分析
Titan202412 分钟前
map和set的封装学习笔记
数据结构·c++
AIminminHu32 分钟前
OpenGL渲染与几何内核那点事-项目实践理论补充(一-1-(5)番外篇:给 CAD 加上“控制台”——让用户能实时“调参数、看性能”)
qt·mfc·cad
懒惰的bit38 分钟前
MFC常见消息映射(简洁版)
c++·mfc
Yupureki41 分钟前
《算法竞赛从入门到国奖》算法基础:动态规划-路径dp
数据结构·c++·算法·动态规划
剑之所向44 分钟前
DataEase 做大屏,只认 2 种 SQL 格式
数据库·sql·正则表达式
kcuwu.1 小时前
Python面向对象:封装、继承、多态
开发语言·python
一定要AK1 小时前
Java流程控制
java·开发语言·笔记
河西石头1 小时前
分享python项目与开源python项目中的效率法宝--requirements文件的使用
开发语言·python·requirements文件·批量安装python依赖·python虚拟环境配置