【qt】【QString的諸多操作】


前言:

  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

 

 

 

后記:

  好多,好多。。以后遇到還會補充到評論區,也歡迎大家評論區補充哦。

 

 

 

 

 

 

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM