QString類提供一個unicode字符串。在QT軟件開發(fā)平臺中常用到的一種變量類型,其提供了很多方便的應用方法。下面介紹一些關于QString的常見用法。
1.字符串末尾追加//example 1 QString str="hello"; str.append("world"); qDebug() <<str; str="hello world" example 2="" qstring str="hello" ;="" str="str+" world"; qdebug() <<str; ="" example 3="" str+="world"
2.取出字符串中指定位置的字符 QString str="hello world"; char ch; ch=str.at(1).unicode(); qDebug() <<ch; ch="e"
3.從字符串末尾刪除若干個字符 QString str="hello world"; str.chop(2); qDebug() <<str; str=" hello wor"
4.清空字符串 //example 1 QString str="hello world"; str.clear(); qDebug() <<str.size(); str="" ="" example 2="" qstring str="hello world" ;="" str="" qdebug() <<str.size(); =""
5.字符串比較 int x = QString::compare("aUtO", "AuTo", Qt::CaseInsensitive); // x == 0 int y = QString::compare("aUtO", "AuTo", Qt::CaseSensitive); // x > 0 int z = QString::compare("auto", "Car", Qt::CaseSensitive); // y > 0 int k = QString::compare("auto", "Car", Qt::CaseInsensitive); // z < 0 //CaseInsensitive:不區(qū)分大小寫 CaseSensitive:區(qū)分大小寫
6.字符串str1是否包含str2字符串 QString str1 = "Peter Pan"; QString str2 = "peter"; bool rel; rel=str1.contains(str2, Qt::CaseInsensitive); //CaseInsensitive:不區(qū)分大小寫 qDebug() <<rel; returns true=""
7.字符串str2在字符串str1中出現過幾次 QString str1 = "HELLO world hello world"; QString str2 = "hello"; int rel; rel=str1.count(str2, Qt::CaseInsensitive); //搜索不區(qū)分大小寫 qDebug() <<rel; rel="2"
8.字符串str1是否以str2結尾 QString str = "Bananas"; str.endsWith("anas"); // returns true str.endsWith("pple"); // returns false
9.搜索字符串str2在字符串str1第一次出現的位置 QString str1 = "sticky question"; //包含了2個 “sti” QString str2 = "sti"; //從位置0開始搜索 str1.indexOf(str2); // returns 0 (第一次出現位置0)) //從位置1開始搜索 str1.indexOf(str2, 1); // returns 10 (第一次出現位置10)) //從位置10開始搜索 str1.indexOf(str2, 10); // returns 10 (第一次出現位置10) //從位置11開始搜索 str1.indexOf(str2, 11); // returns -1 (不存在)
10.在字符串str1指定位置中插入str2 QString str1 = "Meal"; QString str2 = "ontr"; str1.insert(1, str2); //從位置1開始插入 // str1 == "Montreal"
11.判斷字符串str是否為空,是否沒有字符 //字符串沒有字符 QString().isEmpty(); // returns true QString("").isEmpty(); // returns true QString("x").isEmpty(); // returns false QString("abc").isEmpty(); // returns false //字符串為空 QString().isNull(); // returns true QString("").isNull(); // returns false QString("abc").isNull(); // returns false
12.計算字符串str長度 QString str = "hello"; int rel=str.length(); qDebug() <<rel; rel="5"
13.從字符串str1中指定位置截取字符 QString str1 = "Nine pineapples"; //從位置5開始截取,截取4個字符 QString str2 = str1.mid(5, 4); // str2 == "pine" //從位置5開始截取,截取到最后 QString str3 = str1.mid(5); // str2 == "pineapples"
14.從字符串str中指定位置開始移除若干個字符 QString str = "Montreal"; //從位置1開始,移除4個字符 str.remove(1, 4);// str == "Meal"
15.從str1字符串中指定位置開始替換若干個字符 QString str1 = "Say yes!"; QString str2 = "no"; //從位置4開始,替換3個字符 str1.replace(4, 3, str2); // str1 == "Say no!"
16.以指定字符對字符串進行分割,將分割后的某一段取出 QString str; QString csv = "forename,middlename,surname,phone"; QString path = "/usr/local/bin/myapp"; // 第一個字段是空的 QString::SectionFlag flag = QString::SectionSkipEmpty; //以“,”為分隔符,將從左往右的第2段返回 str = csv.section(',', 2, 2); // str == "surname" qDebug() <<str; ="" 以“="" ”為分隔符,將從左往右的第3段到第4段返回="" str =" path.section('/', 3, 4); // str == " bin="" myapp" qdebug() <<str;="" ”為分隔符,將從左往右的第3段(忽略前面的空字段)="" 前面符號表示從右往左計數="" 這里除了可以以單個字符','為分割符外,還可以以"**"字符串為分割符號,可自行實驗=""
17.數字轉字符串 QString str; //10代表以10進制轉換成字符串(允許范圍2~36) str.setNum(1234,10); // str == "1234" //'g'代表精度 str.setNum(12.34,'g',10); // str == "12.34"
18.格式化轉化為字符串 QString str; int value=1998; str.sprintf("value=%d",value); qDebug() <<str; str="value=1998"
19.判斷字符串str是否以字符串str2開頭 QString str = "Bananas"; str.startsWith("Ban",Qt::CaseSensitive); // returns true str.startsWith("ban",Qt::CaseInsensitive); // returns true str.startsWith("Car",Qt::CaseSensitive); // returns false
20.字符串str轉化為數值 //example 1 QString >> double bool d; d = QString( "1234,56" ).toDouble(&ok); // ok == false d = QString( "1234.56" ).toDouble(&ok); // ok == true, d == 1234.56 //exapmle 2 QString >> folat QString str1 = "1234.56"; str1.toFloat(); // returns 1234.56 bool ok; QString str2 = "R2D2"; str2.toFloat(&ok); // returns 0.0, sets ok to false //exapmle 3 QString >> int QString str = "FF"; bool ok; //16表示十六進制 int hex = str.toInt(&ok, 16); // hex == 255, ok == true //10表示十進制 轉換失敗 int dec = str.toInt(&ok, 10); // dec == 0, ok == false
21.將字符串str中所有的字母轉化為小寫字母或大寫字母 //example 1 大寫轉小寫 QString str = "The Qt PROJECT"; str = str.toLower(); // str == "the qt project" //example 2 小寫轉大寫 QString str = "TeXt"; str = str.toUpper(); // str == "TEXT"
22.從指定位置截斷字符串str QString str = "Vladivostok"; str.truncate(4); // str == "Vlad"
23.QString支持的操作符號有:
用于字符串之間比較:"!=" "<" "<=" "==" ">="
用于字符串之間傳遞:"+=" "="
《聰明在于勤奮,天才在于積累——華羅庚 》
聯系客服