关于#qt#的问题:怎样使用qt以字母分割字符

Qt怎样使用字母分割字符串

N1G0 Y1.8C113
N4G2Y2 C13.9 R150F12
N6G3 Y:7.25 C:8.9R1.26 
N7G3 Y:4.4 C:14.4R48.7

怎样使用qt以字母分割为N1,G0,Y1.8,C113等字符

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:Qt字符串分割

可以使用QString类的split()函数来实现在Qt中按字母分割字符串,具体步骤如下:

将要分割的字符串转换为QString类型,可以使用QString的构造函数或者fromStdString()静态函数。

QString str = QString::fromStdString("N1G0 Y1.8C113");



使用split()函数按指定的分隔符对字符串进行分割,可以使用QString中的正则表达式作为分隔符。例如,要按字母分割字符串,可以使用正则表达式"([A-Za-z])",表示匹配任意一个字母。

QStringList parts = str.split(QRegExp("([A-Za-z])"));


分割后得到的结果是QStringList类型,可以使用at()函数来访问其中的每一个分割后的字符串。


QString part1 = parts.at(0); // N1
QString part2 = parts.at(1); // G0
QString part3 = parts.at(2); // Y1.8
QString part4 = parts.at(3); // C113


完整的示例代码如下:

#include <QDebug>
#include <QString>

int main(int argc, char *argv[])
{
    Q_UNUSED(argc);
    Q_UNUSED(argv);

    QString str = QString::fromStdString("N1G0 Y1.8C113");
    QStringList parts = str.split(QRegExp("([A-Za-z])"));

    QString part1 = parts.at(0); // N1
    QString part2 = parts.at(1); // G0
    QString part3 = parts.at(2); // Y1.8
    QString part4 = parts.at(3); // C113

    qDebug() << "part1: " << part1; // "part1: N1"
    qDebug() << "part2: " << part2; // "part2: G0"
    qDebug() << "part3: " << part3; // "part3: Y1.8"
    qDebug() << "part4: " << part4; // "part4: C113"

    return 0;
}


答案出自 #qt# https://www.wodianping.com/