QT 最常用字符串操作

QString

一、查找字符串位置
QString str = "abccefc";

//1.返回第一次出现的下标,未出现返回-1
int index = str.indexOf("c");  //2
str.indexOf("ce");  //3
str.indexOf("cd");  //-1

//2.返回最后一次出现的下标
str.lastIndexOf("c")  //6

//3.返回倒数第二次出现的下标
int index = str.lastIndexOf("/", (str.lastIndexOf("/") - 1));
二、截取指定位置的字符串
QString x = "Nine pineapples";
//1.从下标5开始,截取4个字符
QString y = x.mid(5, 4);            // y == "pine"
//2.从下标5开始截取
QString z = x.mid(5);               // z == "pineapples"
//3.返回最左边的3个字符的字符串
QString k = x.left(3);              // k == "Nin"
三、判断字符串是否含有空字符
QString().isEmpty();            // returns true
QString("").isEmpty();          // returns true
QString("x").isEmpty();         // returns false
四、判断字符串是否为空值
QString().isNull();             // returns true
QString("").isNull();           // returns false
QString("abc").isNull();        // returns false
五、指定位置插入字符串
QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal"
六、判断是否以某个字符串开始或结尾

QString str = “www.4399.com”;
str.startsWith(“www”); //true
str.endsWith(“.com”); //true

七、删除空字符
QString str = " 185 8 804 9973  ";
//1.删除所有空字符
str.replace(" ", "");  // str == "18588049973"
//2.删除两边的空字符
str.trimmed();  // str == "185 8 804 9973"
八、排序字符串
QStringList list;
list << "apple" << "water" << "tea";
list.sort();
//将列表中已排序好的字符串进行拼接
QString str = list.join("");  //str == "appleteawater"
九、切割字符串
QString str = "apple->data->kkk->";
auto list = str.split("->");
qDebug() << list;  //("apple", "data", "kkk", "")
十、字符串区分大小写
// 区分:Qt::CaseSensitive
// 不区分:Qt::CaseInsensitive

QString str;
if (str.contains("Default", Qt::CaseInsensitive)) {
}

十一、其他一些简单操作
1.追加字符串
append
2.字符串中加入变量
QString m = “mm”;
QString n = “nn”;
QString(“adc %1 %2”).arg(m).arg(n);
3.是否包含某个字符串
contains


QStringList

一、删除重复字符串
QStringList list;
list << "2222" << "xxx" << "1111" << "2222" << "xxxx" << "1111";
list.removeDuplicates();
二、字符串排序
QStringList list;
list << "2222" << "xxx" << "1111" << "2222" << "xxxx" << "1111";
list.sort();