久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

        手機站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

        千鋒教育

        掃一掃進入千鋒手機站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時隨地免費學(xué)習(xí)課程

        當(dāng)前位置:首頁  >  技術(shù)干貨  > QString分割字符串詳解

        QString分割字符串詳解

        來源:千鋒教育
        發(fā)布人:xqq
        時間: 2023-11-23 14:16:27 1700720187

        一、qstring截取一段字符串

        在QString中,可以使用mid方法來截取一段指定長度的字符串。mid方法接收兩個參數(shù),第一個參數(shù)是待截取的字符串的起始位置,第二個參數(shù)是待截取字符串的長度。

        
        QString str = "Hello, World!";
        QString newStr = str.mid(7, 5); // 從字符串的第7個字符開始,截取5個字符,newStr的值為"World"
        

        也可以不指定第二個參數(shù),則只截取起始位置之后的所有字符。

        
        QString str = "Hello, World!";
        QString newStr = str.mid(7); // 從字符串的第7個字符開始,截取之后的所有字符,newStr的值為"World!"
        

        使用left和right方法可以從字符串的左側(cè)或右側(cè)分別截取指定長度的字符串。left方法從左側(cè)開始截取,接收一個參數(shù)指定要截取的字符長度。right方法從右側(cè)開始截取,同樣接收一個參數(shù)指定要截取的字符長度。

        
        QString str = "Hello, World!";
        QString newStr1 = str.left(5); // 從字符串的左側(cè)開始,截取5個字符,newStr1的值為"Hello"
        QString newStr2 = str.right(6); // 從字符串的右側(cè)開始,截取6個字符,newStr2的值為"World!"
        

        二、qstring字符串替換

        QString中提供了replace方法用于字符串替換。replace方法接收兩個參數(shù),第一個參數(shù)是被替換的字符串,第二個參數(shù)是替換后的字符串。

        
        QString str = "Hello, World!";
        str.replace("World", "Mars"); // 將"World"替換成"Mars",str的值變?yōu)?Hello, Mars!"
        

        如果需要在替換前先判斷一下字符串中是否包含指定的子串,可以使用contains方法。

        
        QString str = "Hello, World!";
        if (str.contains("World")) {
            str.replace("World", "Mars");
        }
        

        三、qstring分隔符取數(shù)據(jù)

        QString提供了split方法用于根據(jù)指定分隔符對字符串進行分割。split方法接收一個參數(shù),即指定的分隔符,返回一個字符串列表,表示分割后得到的所有子串。

        
        QString str = "apple,banana,pear";
        QStringList list = str.split(","); // 按","為分隔符分割字符串,list的值為["apple", "banana", "pear"]
        

        split方法還可以接收第二個參數(shù),表示分割后的子串的最大數(shù)量。

        
        QString str = "apple,banana,pear";
        QStringList list = str.split(",", 2); // 按","為分隔符分割字符串,返回2個子串,list的值為["apple", "banana,pear"]
        

        四、qstring如何截取字符串

        除了之前介紹的mid、left和right方法之外,QString還提供了幾種截取字符串的方法。

        一種是使用remove方法,先刪除指定位置及之后的字符,再刪除指定位置及之前的字符,即可得到所需的子串。

        
        QString str = "Hello, World!";
        str.remove(str.indexOf(','), str.length()); // 刪除","及其后的字符
        str.remove(0, str.lastIndexOf(' ') + 1); // 刪除第一個空格及其前面的字符
        

        另一種是使用section方法,可以方便地從復(fù)雜字符串中提取子串。section方法接收三個參數(shù),第一個參數(shù)是指定的分隔符,第二個參數(shù)是子串的索引(從0開始),第三個參數(shù)是標(biāo)志位,表示截取的方式。

        
        QString str = "China,Beijing,Chaoyang";
        QString city = str.section(',', 1, 1); // 返回第2個子串"Beijing"
        

        標(biāo)志位有三個選項:

        QString::SectionDefault:默認(rèn)選項,截取指定索引對應(yīng)的子串。 QString::SectionSkipEmpty:如果截取得到的子串為空,則跳過。 QString::SectionIncludeLeadingSep:將分隔符放在截取得到的子串前面。

        五、qstring查找字符串

        在QString中,可以使用indexOf和lastIndexOf方法查找指定字符串的位置。這兩個方法都接收兩個參數(shù),第一個參數(shù)是待查找的字符串,第二個參數(shù)是查找起點的位置。

        
        QString str = "Hello, World!";
        int pos1 = str.indexOf("l"); // 查找"l"第一次出現(xiàn)的位置,pos1的值為2
        int pos2 = str.lastIndexOf("l"); // 查找"l"最后一次出現(xiàn)的位置,pos2的值為10
        int pos3 = str.indexOf("l", pos2 + 1); // 從pos2+1的位置開始查找"l",pos3的值為3
        

        另外,還可以使用count方法查找指定子字符串在當(dāng)前字符串中出現(xiàn)的次數(shù)。

        
        QString str = "Hello, World!";
        int count = str.count("l"); // 返回"l"在字符串中出現(xiàn)的次數(shù),count的值為3
        

        六、字符串如何轉(zhuǎn)成qstring

        在Qt中經(jīng)常需要將char*、std::string等其他類型的字符串轉(zhuǎn)換成QString類型,QString提供了fromStdString、fromLocal8Bit和fromUtf8等方法來實現(xiàn)。

        
        char* cstr = "Hello, World!";
        QString str1 = QString::fromLocal8Bit(cstr); // 將本地編碼的字符串轉(zhuǎn)換成QString
        std::string stdstr = "Hello, World!";
        QString str2 = QString::fromStdString(stdstr); // 將std::string類型的字符串轉(zhuǎn)換成QString
        const char* utf8str = "你好,世界!";
        QString str3 = QString::fromUtf8(utf8str); // 將UTF-8編碼的字符串轉(zhuǎn)換成QString
        

        七、string字符串分割

        在使用string類型的字符串時,可以先將其轉(zhuǎn)換成QString類型,然后使用split方法進行分割。另外,也可以使用stringstream對象進行分割。

        
        #include 
        #include 
        using namespace std;
        
        string str = "apple,banana,pear";
        QString qstr = QString::fromStdString(str);
        
        // 使用split方法進行分割
        
        QStringList list = qstr.split(",");
        for (int i = 0; i < list.size(); i++) {
            string s = list[i].toStdString(); // 將QString轉(zhuǎn)換成string類型
            cout << s << endl;
        }
        
        // 使用stringstream對象進行分割
        
        stringstream ss(str);
        string s;
        while (getline(ss, s, ',')) {
            cout << s << endl;
        }
        

        tags: react-player
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
        請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
        免費領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        江孜县| 连州市| 青岛市| 神农架林区| 乳源| 松阳县| 定边县| 于都县| 广昌县| 衢州市| 海城市| 安吉县| 正定县| 甘肃省| 霞浦县| 亚东县| 含山县| 西和县| 襄垣县| 巩义市| 航空| 策勒县| 应用必备| 抚顺市| 三江| 昭平县| 邻水| 屏边| 芜湖市| 鄯善县| 遂昌县| 涟水县| 喀喇沁旗| 竹北市| 德昌县| 瑞昌市| 介休市| 遂宁市| 五峰| 通城县| 淅川县|