前言:
qt的數據處理莫過於QString,QString對於字符串的操作多的數不勝數。下面博主就將常用的羅列出來,一起分享。
正文:
下面的操作具體為:追加,查找,刪除,提取,分割,各種轉換等等。
0.字符串長度:length
QString str = "hello world";
int strNum = str.length();//11
1.追加字符串:+
QString的追加字符串比較簡單。可以直接2個字符串用"+"連接即可。
QString str1 = “hello”;
QString str2 = “world”;
QString str = str1 + str2;// helloworld;
2.查找字符串:indexOf
indexOf();查找到字串返回字串第一次出現的下標,否則返回-1;
QString str = “helloworld”;
int strNum = str.indexOf("wor");//5
3.刪除字符串:remove
將指定字符串從父母串中刪除;
QString str = "hello word";
QString str2 = str.remove("o wo");//hellrd
4.字符串提取:mid
4.1.提取指定位置的n個字符串。
QString str = ”hello word“;
QString str2 = str.mid(1,3);//ell
4.2.提取指定位置到末尾的字符串。
QString str = "hello world";
QString str2 = str.mid("2");//llo world
4.3.提取開頭到指定位置的字符串。
QString str = "hello world";
QString str2 = str.left(3);//hell
4.4.提取指定位置到末尾的字符串。
QString str = "hello world";
QString str2 = str.right(3);//lo world
5.分割字符串:section
將字符串依照某個字符分割成若干快,進行提取。
QString str = "1,2,3,4,5,6";
QString str2 = str.section(",", 1,1).trimmed();//2,,第二個參數是起始分隔符,第三個參數是到第幾個分割符。
6.字符串轉數字:toInt
QString str = "111";
int a = 1 + str.toInt();//112
7.字符串換數組:QByteArray
QByteArray byteArray = QString.toLatin1(); // 這種方法遇到中文會變成????。
QByteArray byteArray = QString.toStdString().data(); //這種方法有可能會給不到數組大小,需要先求大小再循環。
8.字符串轉bool:
bool testParam;
QString tempParam = QString::number(testParam);
//上面是bool 轉QString;
QVariant tempValue = tempParam;
bool tempFinished = tempValue.toBool();
//這樣就把QString 類型的轉換回去了。
9.qint8轉QString:
qint8 a = 9;
QString b=tr("%1").arg(a);
10.Qstring到string的轉化
//從QString 到 std::string
str = qstr.toStdString();
//從std::string 到QString
qstr = QString::fromStdString(str);
11.unsigned char 轉化QString:
unsigned char buf[]="<ocs><header t=\"login\" c=\"1\" i=\"-1\" /><body><u>";
string bufs = (char*)buf;
QString bufq = QString::fromStdString(bufs);
ui->lineEdit->setText(bufq);
12.QString 轉char*
QString ss = "<ocs><header t=\"login\" c=\"1\" i=\"-1\" /><body><u><ocs><header t=\"login\" c=\"1\" i=\"-1\" /><body><u><ocs><header t=\"login\" c=\"1\" i=\"-1\" /><body><u>";
char* cc = ss.toUtf8().data();
int len = ss.size();
cout << len<< endl;
for(int i=0; i<len; i++) {
cout << cc[i];
}
13.過濾末尾和開頭的空白字符串:trimmed
QString str(" abc def ghi ");
str = str.trimmed();//str = "abc def ghi"
14.字符串大小寫切換:toUpper
QString s = "Hello World";
QString ss = s.toUpper();//HELLO WORLD
QString s = "Hello World";
QString ss = s.toLower();//
hello world
15.判讀字符串的開頭和結尾:
QString s = "http:www.baidu.com";
bool i = s.startsWith("http:");//true
QString str = "http:www.baidu.com";
bool i = str.endsWith("com");//true
16.判斷子串出現的次數:
QString str = "Hello World";
QString str2 = str.count("l");// 輸出3
后記:
好多,好多。。以后遇到還會補充到評論區,也歡迎大家評論區補充哦。