web-dev-qa-db-fra.com

Qt. obtenir une partie de QString

Je veux obtenir QString d'un autre QString, quand je connais les index nécessaires. Par exemple: Chaîne principale: "Ceci est une chaîne" . Je veux créer un nouveau QString à partir des 5 premiers symboles et obtenir "This" .
entrée: premier et dernier numéro de caractère.
output: new QString.

Comment le créer?

P.S. Non seulement plusieurs premières lettres, également du milieu de la ligne, par exemple de 5 à 8.

63
AlekseyS

Si vous n'avez pas besoin de modifier la sous-chaîne, vous pouvez utiliser QStringRef. La classe QStringRef est un wrapper en lecture seule autour d'un QString existant qui fait référence à une sous-chaîne de la chaîne existante. Cela donne de bien meilleures performances que la création d’un nouvel objet QString contenant la sous-chaîne. Par exemple.

QString myString("This is a string");
QStringRef subString(&myString, 5, 2); // subString contains "is"

Si vous avez besoin de modifier la sous-chaîne, alors left(), mid() et right() feront ce dont vous avez besoin ...

QString myString("This is a string");
QString subString = myString.mid(5,2); // subString contains "is"
subString.append("n't"); // subString contains "isn't"
100
Alan

Utilisez la fonction left:

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

Regardez aussi mid() si vous voulez plus de contrôle.

44
laurent