如果您不需要修改子字符串,则可以使用 QStringRef
。 QStringRef
类是现有 QString
的只读包装器,它引用现有字符串中的子字符串。这比创建一个新的 QString
对象来包含子字符串提供了更好的性能。例如
QString myString("This is a string");
QStringRef subString(&myString, 5, 2); // subString contains "is"
如果您确实需要修改子字符串,那么 left()
、mid()
和 right()
将满足您的需求...
QString myString("This is a string");
QString subString = myString.mid(5,2); // subString contains "is"
subString.append("n't"); // subString contains "isn't"
使用 left
函数:
QString yourString = "This is a string";
QString leftSide = yourString.left(5);
qDebug() << leftSide; // output "This "
如果您想要更多控制权,还可以查看 mid()
。
不定期副业成功案例分享
QStringRef
是一种具有额外复杂性的优化。除非您正在执行繁重的字符串操作,并且您实际上会从优化中受益(在大多数情况下,您不会),否则使用QString
会更安全、更简单。We suggest that you only use this class in stable code where profiling has clearly identified that performance improvements can be made by replacing standard string operations with the optimized substring handling provided by this class.