QT QSting的用法

目錄

一、創建

二、插入

三、刪除

四、修改

五、查找

六、截取字符

七、字符串與數字轉換

八、判斷字符串是否存在,是否爲空

九、測試代碼:


 

一、創建

QString str1 = "Hello1";
QString str2 = QString("%1 to %2").arg("Welcome").arg("QT!");

二、插入

//1、插入字符 在X位置插入字符串
qDebug() << str.insert(0," Insert ");
//2、在字符串起始處插入另一個字符串
qDebug() << str.prepend(" Hello ");
//3、在字符串起末尾插入另一個字符串
qDebug() <<  str.append(" End ");

三、刪除

//1、清空字符串
str.clear();  
//2、移除某一位開始後的幾個字符
str.remove(0,1);
//3、移除字符串中的某一種字符
str.remove('2');
//4、去除字符串兩端的空白字符
qDebug() << str.trimmed();
//5、去除字符串兩端的空白字符,使用單個空格‘ ’代替字符串中出現的空白字符
qDebug() << str.simplified();

四、修改

//1、替換字符串
//用參數3替換掉原字符串0位置開始後面的2個字符
str.replace(0,2,"qwer");
//2、拼接兩個字符串
str = str + "abc";
str += "abc";
//3、拼接兩個字符串
str.sprintf("%s--%s","Welcome ","to QT!");

五、查找

//1、查找字符串是否以指定字符串開頭,參數2大小寫敏感,返回值是bool
qDebug() << str.startsWith("AB",Qt::CaseSensitive);
//2、查找字符串是否以指定字符串結尾,參數2大小寫敏感,返回值是bool
qDebug() << str.endsWith("EF",Qt::CaseSensitive);
//3、查找字符串中是否出現指定字符串,參數2大小寫敏感,返回值是bool
qDebug() << str.contains("EF",Qt::CaseSensitive);
//4、從哪位開始查找字符串;成功返回匹配字符串的下標。失敗返回-1;
qDebug() <<  str.indexOf("He",0);

六、截取字符

//1、截取從左開始的3個字符
qDebug() << str.left(3);
//2、截取從右開始的3個字符
qDebug() << str.right(3);
//3、截取從下標1開始的6個字符
qDebug() << str.mid(1,6);
//4、將字符串按'e',分割成幾塊,選下標1開始的塊,到下標1的塊結束
qDebug() << str.section('e',1,1);
//5、將字符串按'e',分割成幾塊,存到QStringList中
QStringList list = str.split('e');
for (int i = 0; i < list.count(); ++i) {
     qDebug() << list.at(i);
}

七、字符串與數字轉換

//1、字符串轉換數字
str = "123";
bool ok = false;
//將字符串轉換成int類型,參數1代表轉換成功與否,參數2,代表字符串是幾進制數
//將16進制 123 轉換成10進制數
//同樣的還有 toDouble();toFloat();toLong();toLongLong()等
int tempInt = str.toInt(&ok,16);

//2、數字轉字符串
//將十進制轉爲八進制數,存到str中
str.setNum(16,8);
qDebug() << str;

double numScientific = 456.78999;
//將數字numScientific用科學計數法表示,保留5位小數,存到str中
str.setNum(numScientific, 'e', 5);
qDebug()<<"Scientific: "<<str;

//將數字numFixed,保留7位小數,存到str中
double numFixed = 123.78999;
str.setNum(numFixed, 'd', 7);
qDebug()<<"Fixed: "<<str;

八、判斷字符串是否存在,是否爲空

//判斷字符串是否存在
qDebug() << QString().isNull();             // returns true
qDebug() << QString("").isNull();           // returns false
qDebug() << QString("hello").isNull();      // returns false

//判斷字符串是否爲空
qDebug() <<QString().isEmpty();            // returns true
qDebug() <<QString("").isEmpty();          // returns true
qDebug() <<QString("Q").isEmpty();         // returns false
qDebug() <<QString("hello").isEmpty();     // returns false

九、測試代碼:

#include <QCoreApplication>
#include <QString>
#include <QStringList>
#include <QDebug>

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

    //創建
    QString str = "";
    QString str2 = QString("%1 to %2").arg("Welcome").arg("QT!");
    qDebug() << "QString(\"%1 to %2\").arg(\"Welcome\").arg(\"QT!\") " << str2;

    //插入
    qDebug() << "插入 str = " << str;
    //插入字符 在0位置插入字符串
    qDebug() << "insert "<<str.insert(0," Insert ");
    //在字符串起始處插入另一個字符串
    qDebug() << "prepend " << str.prepend(" Hello ");
    //在字符串起末尾插入另一個字符串
    qDebug() << "append "  << str.append(" End ");

    //刪除
     qDebug() << "刪除 str = " << str;
    //1、清空字符串
    str.clear();
    qDebug() << "clear "   << str;
    //2、移除某一位開始後的幾個字符
    str = " AB   CD ";
    qDebug() << "remove " << str.remove(0,1);
    //3、移除字符串中的某一種字符
    str = " AB   CD ";
    qDebug() << "remove "  << str.remove('2');
    //4、去除字符串兩端的空白字符
    str = " AB   CD ";
    qDebug() << "trimmed "  << str.trimmed();
    //5、去除字符串兩端的空白字符,使用單個空格‘ ’代替字符串中出現的空白字符
    str = " AB   CD ";
    qDebug() << "simplified "  << str.simplified();

    //修改
    qDebug() << "修改 str = " << str;
    //1、替換字符串
    //用參數3替換掉原字符串0位置開始後面的2個字符
    str = "ABC";
    qDebug() << "replace "  << str.replace(0,2,"FGH");
    //2、拼接兩個字符串
    str = str + "abc";
    qDebug() << "+ "  << str;
    str += "abc";
    qDebug() << "+= "  << str;
    //3、拼接兩個字符串
    str.clear();
    str.sprintf("%s--%s","Welcome ","to QT!");
    qDebug() << "sprintf str = " << str;
    //查找
    str = "ABCEF";
    qDebug() << "查找 str = " << str;
    //1、查找字符串是否以指定字符串開頭,參數2大小寫敏感,返回值是bool
    qDebug() << "startsWith "  << str.startsWith("AB",Qt::CaseSensitive);
    //2、查找字符串是否以指定字符串結尾,參數2大小寫敏感,返回值是bool
    qDebug() << "endsWith "  << str.endsWith("EF",Qt::CaseSensitive);
    //3、查找字符串中是否出現指定字符串,參數2大小寫敏感,返回值是bool
    qDebug() << "contains "  << str.contains("EF",Qt::CaseSensitive);
    //4、從哪位開始查找字符串;成功返回匹配字符串的下標。失敗返回-1;
    qDebug() << "indexOf "  <<  str.indexOf("CE",0);

    //截取
    str = "ABCEF";
    qDebug() << "截取 str = " << str;
    //1、截取從左開始的3個字符
    qDebug() << "left "  << str.left(3);
    //2、截取從右開始的3個字符
    qDebug() << "right "  << str.right(3);
    //3、截取從下標1開始的6個字符
    qDebug() << "mid "  << str.mid(1,4);
    //4、將字符串按'e',分割成幾塊,選下標1開始的塊,到下標1的塊結束
    qDebug() << "section "  << str.section('E',1,1);
    //5、將字符串按'e',分割成幾塊,存到QStringList中
    QStringList list = str.split('E');
    for (int i = 0; i < list.count(); ++i) {
         qDebug() << "split "  << list.at(i);
    }

    //字符串與數字轉換
    //1、字符串轉換數字
    str = "123";
    bool ok = false;
    //將字符串轉換成int類型,參數1代表轉換成功與否,參數2,代表字符串是幾進制數
    //將16進制 123 轉換成10進制數
    //同樣的還有 toDouble();toFloat();toLong();toLongLong()等
    int tempInt = str.toInt(&ok,16);
    qDebug() << "toInt "  << tempInt;

    //2、數字轉字符串
    //將十進制轉爲八進制數,存到str中
    qDebug() << "將十進制轉爲八進制數,存到str中 "  << str.setNum(16,8);

    double numScientific = 456.78999;
    //將數字numScientific用科學計數法表示,保留5位小數,存到str中
    str.setNum(numScientific, 'e', 5);
    qDebug() << "將數字numScientific用科學計數法表示,保留5位小數,存到str中 " <<"Scientific: "<<str;

    //將數字numFixed,保留7位小數,存到str中
    double numFixed = 123.78999;
    str.setNum(numFixed, 'd', 7);
    qDebug() << "將數字numFixed,保留7位小數,存到str中 " <<"Fixed: "<<str;
    return a.exec();
}

 

發佈了42 篇原創文章 · 獲贊 52 · 訪問量 6590
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章