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

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

相关推荐
玖釉-8 小时前
Vulkan 示例解析:gltfscenerendering.cpp 如何渲染一个复杂 glTF 场景
c++·windows·图形渲染
落羽的落羽8 小时前
【算法札记】练习 | Week5
linux·服务器·c++·人工智能·计算机网络·算法·哈希算法
淘矿人8 小时前
DeepSeek V4对决Claude 4.8:AI模型终极横评
java·开发语言·人工智能·python·sql·php·pygame
走好每一步8 小时前
1、VTK+QT + cmake编程 三维圆柱体
qt·vtk
skywalk81639 小时前
你希望的「多路捕获」语法是哪种形式?具体而言,「捕获 类型为 e」指的是什么?
开发语言·编程
c238569 小时前
c/c++中的二叉树进阶
c语言·c++·算法
两年半的个人练习生^_^9 小时前
JMM 进阶:彻底理解 volatile 实现原理
java·开发语言
晚风吹红霞9 小时前
C++模板进阶:非类型参数、特化、分离编译与优缺点解析
开发语言·c++
小小龙学IT9 小时前
Go语言后端开发入门指南
开发语言·后端·golang
不会C语言的男孩9 小时前
C++ Primer 第8章:IO 库
开发语言·c++