Qt 的QString类的使用

来源:互联网 发布:诺兰蝙蝠侠三部曲知乎 编辑:程序博客网 时间:2024/05/16 17:16

Qt的QString类提供了很方便的对字符串操作的接口。

  1. 使某个字符填满字符串,也就是说字符串里的所有字符都有等长度的ch来代替。
QString::fill ( QChar ch, int size = -1 )

例:

复制代码
     QString str = "Berlin";     str.fill('z');     // str == "zzzzzz"     str.fill('A', 2);     // str == "AA"
复制代码

2,从字符串里查找相同的某个字符串str。

int QString::indexOf ( const QString & str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive ) const

例如:

复制代码
QString x = "sticky question";     QString y = "sti";     x.indexOf(y);               // returns 0     x.indexOf(y, 1);            // returns 10     x.indexOf(y, 10);           // returns 10     x.indexOf(y, 11);           // returns -1
复制代码

3指定位置插入字符串

QString & QString::insert ( int position, const QString & str )

例如:

     QString str = "Meal";     str.insert(1, QString("ontr"));     // str == "Montreal"

3,判断字符串是否为空。

bool QString::isEmpty () const

如:

     QString().isEmpty();            // returns true     QString("").isEmpty();          // returns true     QString("x").isEmpty();         // returns false     QString("abc").isEmpty();       // returns false

4.判断字符串是否存在。

bool QString::isNull () const

例如:

     QString().isNull();             // returns true     QString("").isNull();           // returns false     QString("abc").isNull();        // returns false

5,从左向右截取字符串

QString QString::left ( int n ) const

例如:

     QString x = "Pineapple";     QString y = x.left(4);      // y == "Pine"

6,从中间截取字符串。

QString QString::mid ( int position, int n = -1 ) const

例如:

  QString x = "Nine pineapples";     QString y = x.mid(5, 4);            // y == "pine"     QString z = x.mid(5);               // z == "pineapples"

7,删除字符串中间某个字符。

QString & QString::remove ( int position, int n )

例如:

     QString s = "Montreal";     s.remove(1, 4);     // s == "Meal"

8,替换字符串中的某些字符。

QString & QString::replace ( int position, int n, const QString & after )

例如:

     QString x = "Say yes!";     QString y = "no";     x.replace(4, 3, y);     // x == "Say no!"

9,以某个字符切割字符串。(最近经常用到的)

QString QString::section ( QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault ) const

例如:

复制代码
   QString str;     QString csv = "forename,middlename,surname,phone";     QString path = "/usr/local/bin/myapp"; // First field is empty     QString::SectionFlag flag = QString::SectionSkipEmpty;     str = csv.section(',', 2, 2);   // str == "surname"     str = path.section('/', 3, 4);  // str == "bin/myapp"     str = path.section('/', 3, 3, flag); // str == "myapp"
复制代码

测试代码:
#include <QCoreApplication>
#include <QDebug>
class QString;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    /*
    QString str = "Berlin";
    str.fill('z');
    // str == "zzzzzz"
    QByteArray ba = str.toLatin1();
    char *mm = ba.data();
    qDebug()<<mm<<endl;
    str.fill('A', 2);
    // str == "AA"
    ba = str.toLatin1();
    mm = ba.data();
    qDebug()<<mm<<endl;
    qDebug()<<"endl";
    */
    /*
    QString x = "sticky question";
    QString y = "sti";
    qDebug()<<x.indexOf(y)<<endl;               // returns 0
    qDebug()<<x.indexOf(y, 1)<<endl;            // returns 10
    qDebug()<<x.indexOf(y, 10)<<endl;           // returns 10
    qDebug()<<x.indexOf(y, 11)<<endl;           // returns -1
    */
    /*
    QString str = "Meal";
    str.insert(1, QString("ontr"));
    // str == "Montreal"
    qDebug()<<str<<endl;
    */
    /*
    qDebug()<<QString().isEmpty();            // returns true
    qDebug()<<QString("").isEmpty();          // returns true
    qDebug()<<QString("x").isEmpty();         // returns false
    qDebug()<<QString("abc").isEmpty();       // returns false
    */
    /*
    qDebug()<<QString().isNull();             // returns true
    qDebug()<<QString("").isNull();           // returns false
    qDebug()<<QString("abc").isNull();        // returns false
    */
    /*
    QString x = "Pineapple";
    QString y = x.left(4);      // y == "Pine"
    qDebug()<<x;
    qDebug()<<y;
    */
    /*
    QString x = "Nine pineapples";
    QString y = x.mid(5, 4);            // y == "pine"
    QString z = x.mid(5);               // z == "pineapples"
    qDebug()<<x;
    qDebug()<<y;
    qDebug()<<z;
    */
    /*
    QString s = "Montreal";
    s.remove(1, 4);
    // s == "Meal"
    qDebug()<<s;
    */
    /*
    QString x = "Say yes!";
    QString y = "no";
    x.replace(4, 3, y);
    // x == "Say no!"
    qDebug()<<x;
    qDebug()<<y;
    */
    QString str0;
    QString str1;
    QString str2;
    QString csv = "forename,middlename,surname,phone";
    QString path = "/usr/local/bin/myapp"; // First field is empty
    QString::SectionFlag flag = QString::SectionSkipEmpty;
    str0 = csv.section(',', 2, 2);   // str == "surname"
    str1 = path.section('/', 3, 4);  // str == "bin/myapp"
    str2 = path.section('/', 3, 3, flag); // str == "myapp"
    qDebug()<<str0;
    qDebug()<<str1;
    qDebug()<<str2;
    return a.exec();
}

10,把整型,浮点型,或其他类型转化为QString

QString & QString::setNum ( uint n, int base = 10 )

相类似的还有好多重载函数,想深入了解,还是要看Qt帮助文档的。

原创粉丝点击