88

当我知道必要的索引时,我想QString从另一个获取。QString例如:主字符串:“这是一个字符串”。我想QString从前 5 个符号创建新符号并获得"This"
输入:第一个和最后一个字符数。
输出:新的QString

如何创建它?

PS不仅是前几个字母,还有从行的中间,例如从 5 到 8。

4

2 回答 2

132

如果您不需要修改子字符串,那么您可以使用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"
于 2011-09-28T15:46:47.560 回答
57

使用left功能:

QString yourString = "This is a string";
QString leftSide = yourString.left(5);
qDebug() << leftSide; // output "This "

mid()如果你想要更多的控制,也看看。

于 2011-09-28T14:24:02.737 回答