在Qt中,QString
类提供了mid()
方法来截取子串。mid()
方法接受两个参数:起始索引(包含)和长度(可选)。如果省略长度参数,则截取从起始索引到字符串末尾的所有字符。
下面通过几个用例来演示如何使用mid()
方法来截取QString
对象的子串。
用例1:截取从指定位置开始的子串
#include <QString>
#include <QDebug>
int main() {
QString str = "Hello, Qt World!";
// 截取从索引7开始的子串,直到字符串末尾
QString subStr = str.mid(7);
qDebug() << "Substring from index 7:" << subStr; // 输出:Qt World!
return 0;
}
用例2:截取指定长度的子串
#include <QString>
#include <QDebug>
int main() {
QString str = "Hello, Qt World!";
// 截取从索引7开始,长度为4的子串
QString subStr = str.mid(7, 4);
qDebug() << "Substring from index 7 with length 4:" << subStr; // 输出:Qt W
return 0;
}
用例3:处理越界索引
如果mid()
方法的起始索引超出了字符串的实际长度,或者起始索引加上长度超出了字符串的实际长度,则返回的字符串将为空。
#include <QString>
#include <QDebug>
int main() {
QString str = "Hello";
// 截取从索引10开始的子串(越界)
QString subStr1 = str.mid(10);
qDebug() << "Substring from index 10 (out of bounds):" << subStr1; // 输出:""
// 截取从索引0开始,长度为10的子串(部分越界)
QString subStr2 = str.mid(0, 10);
qDebug() << "Substring from index 0 with length 10 (partial out of bounds):" << subStr2; // 输出:Hello
return 0;
}
注意:在第二个越界示例中,虽然请求的长度超出了字符串的实际长度,但mid()
方法仅返回从起始索引到字符串末尾的部分,因此不会抛出异常或错误。
这些用例展示了如何使用mid()
方法在Qt中截取QString
对象的子串。通过指定起始索引和长度(可选),可以轻松地从字符串中提取所需的部分。