当我知道必要的索引时,我想QString
从另一个获取QString
。例如:主字符串:“ This is a string”。我想QString
从前5个符号中创建新符号并得到“ This”。
输入:第一个和最后一个字符数。
输出:新QString
。
如何创建呢?
PS不仅前几个字母,而且从行中间开始,例如从5到8。
Answers:
如果您不需要修改子字符串,则可以使用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"
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.