Qt 字符串截取常用函数
1、bool QString::startsWith // 字符串以XX开头,返回true,第二个参数可以设置大小写敏感
QString str = "Bananas"; str.startsWith("Ban"); // returns true str.startsWith("Car"); // returns false
2、bool QString::endsWith // 字符串以XX结尾,返回false,第二个参数可以设置大小写敏感
QString str = "Bananas"; str.endsWith("anas"); // returns true str.endsWith("pple"); // returns false
3、QString QString::trimmed() // 返回前后没有空格的字符串
QString str = " lots\t of\nwhitespace\r\n "; str = str.trimmed(); // str == "lots\t of\nwhitespace"
4、QString &QString::remove(int position, int n) // 指定位置开始删除n个字符,返回该字符引用
QString s = "Montreal"; s.remove(1, 4); // s == "Meal"
5、int QString::indexOf() // 返回从指定位置开始第一次出现的索引位置,未找到返回-1。第二个参数可以设置大小写敏感
QString x = "sticky question"; QString y = "sti"; x.indexOf(y); // returns 0 x.indexOf(y, 1); // returns 10 x.indexOf(y, 10); // returns 10 x.indexOf(y, 11); // returns -1
6、int QString::lastIndexOf()
// 返回此字符串中字符串str的最后一次出现的索引位置,从索引位置向后搜索。如果from是-1(默认值),搜索从最后一个字符开始;如果from是-2,则在倒数第二个字符处,依此类推。如果没有找到str,则返回-1。第二个参数可以设置大小写敏感
QString x = "crazy azimuths"; QString y = "az"; x.lastIndexOf(y); // returns 6 x.lastIndexOf(y, 6); // returns 6 x.lastIndexOf(y, 5); // returns 2 x.lastIndexOf(y, 1); // returns -1
7、QString QString::right(int n) const // 返回包含该字符串的最右n个字符的子字符串。
QString x = "Pineapple"; QString y = x.right(5); // y == "apple"
8、QString QString::left(int n) const // 返回包含该字符串的最左n个字符的子字符串。
QString x = "Pineapple"; QString y = x.left(4); // y == "Pine"
9、QString QString::mid(int position, int n = -1) const // 返回一个包含该字符串的n个字符的字符串,从指定的位置索引开始。
QString x = "Nine pineapples"; QString y = x.mid(5, 4); // y == "pine" QString z = x.mid(5); // z == "pineapples"
10、QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const // 在sep出现的地方将字符串分割成子字符串,并返回这些字符串的列表。可以设置大小写敏感
QString str = QStringLiteral("a,,b,c"); QStringList list1 = str.split(QLatin1Char(',')); // list1: [ "a", "", "b", "c" ] QStringList list2 = str.split(QLatin1Char(','), Qt::SkipEmptyParts); // list2: [ "a", "b", "c" ]
练习:
提取“[]”中的数据
QStringList list; QString tempStr; bool judge = false; QString str = "dsgdsg%$%^$[111]dfdff[2222](*&*([12346])) dg[3333] 788 dddd"; int a[] = {0,1,2}; foreach(auto ch, str) { if(judge) tempStr += ch; if(ch == '[') judge = true; if(ch == ']') { judge = false; list.append(tempStr.left(tempStr.indexOf(']'))); tempStr.clear(); } } foreach(auto s, list) { qDebug()<<s; // 输出"111""2222""12346""3333"
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!