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?
C'est la syntaxe pour supprimer les deux premiers caractères.
str.remove(0, 2);
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é.
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"