qt不比较qstring最后四个
时间: 2024-10-26 17:03:45 浏览: 5
Qt中QString、QByteArray、int、double之间转换 - 苦涩的茶 - 博客园1
在Qt中,如果你想比较`QString`对象的前几个字符而不考虑后几个,可以使用`mid()`函数截取指定长度的子串进行比较。`mid()`函数允许你从指定位置开始并返回指定长度的子字符串。
例如,假设你想比较两个`QString`的前4个字符:
```cpp
QString str1 = "HelloWorld";
QString str2 = "HiThere";
// 截取每个字符串的前4个字符
QString substr1 = str1.mid(0, 4);
QString substr2 = str2.mid(0, 4);
if (substr1 == substr2) {
qDebug() << "前4个字符相同";
} else {
qDebug() << "前4个字符不同";
}
```
在这里,`str1.mid(0, 4)`将得到"Hello",`str2.mid(0, 4)`得到"HiTh",因为比较的是前4个字符,所以结果会显示它们不同。
如果你想要比较直到遇到的不同字符为止,而不是固定长度,你可以传递负数给第二个参数,表示从字符串结尾开始计数:
```cpp
QString str3 = "Hello123";
QString str4 = "Hello456";
QString substr3 = str3.mid(-4); // 从倒数第4个字符开始截取直到字符串结束
QString substr4 = str4.mid(-4); // 同样
if (substr3 == substr4) {
qDebug() << "除了后4位外,其余部分相同";
} else {
qDebug() << "除了后4位外,其他部分不同";
}
```
在这种情况下,`substr3`将是"123",而`substr4`是"456",它们将被识别为不同的。
阅读全文