Qt 字符串设置固定宽度,前位补0

使用场景

对数据等的编号,为了对齐,常常会用0001,0002,….,1001等表示,在Qt中用QString可以进行相关转换操作,还能对十六进制、二进制等转换。


代码如下:

#include 
#include 

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

    //输出10进制
    QString str= QString::number(17);
    //10进制数 17  4位  前位补0
    QString strNew = QString("%1").arg(str.toInt(), 4, 10, QLatin1Char('0'));
    qDebug() << strNew;  //strNew = "0017"


    //输出二进制
    QString str2= QString::number(9);
    //10进制数 9  4位  前位补0
    QString strNew2 = QString("%1").arg(str2.toInt(), 4, 2, QLatin1Char('0'));
    qDebug() << strNew2;  //strNew2 = "1001"


    //输出16进制
    QString str16= QString::number(11);
    //10进制数 11  4位  前位补0
    QString strNew16 = QString("%1").arg(str16.toInt(), 4, 16, QLatin1Char('0'));
    qDebug() << strNew16;  //strNew16 = "000b"

    return a.exec();
}

你可能感兴趣的:(Qt)