web-dev-qa-db-fra.com

Comment supprimer les deux premiers caractères d'une chaîne QString

Comment pourrais-je supprimer les deux premiers caractères d'une chaîne QString ou si je dois y mettre les termes d'un profane StackOverflows:

QString str = "##Name" //output: ##Name

à

output: Name

Jusqu'à présent, j'ai utilisé ce petit morceau de code:

if(str.contains("##"))
{
    str.replace("##","");
}

..mais cela ne fonctionne pas car j'aurais besoin d'avoir "##" dans d'autres chaînes, mais pas au début.

Les deux premiers caractères peuvent également être "% $" et "# @" et c'est principalement la raison pour laquelle je dois supprimer les deux premiers caractères.

Des idées?

9
Joe Carr

C'est la syntaxe pour supprimer les deux premiers caractères.

str.remove(0, 2); 
8
PLAYBOY

Vous pouvez utiliser le QString::mid fonction pour cela:

QString trimmed = str.mid(2);

Mais si vous souhaitez modifier la chaîne en place, il vaut mieux utiliser QString::remove comme d'autres l'ont suggéré.

8
paddy

Vous pouvez utiliser supprimer (const QRegExp & rx)

Supprime chaque occurrence de l'expression régulière rx dans la chaîne et renvoie une référence à la chaîne. Par exemple:

QString str = "##Name" //output: ##Name
    str.remove(QRegExp("[#]."));
    //strr == "Name"
4
rahim