2017-03-07 4 views
3

Comment pourrais-je supprimer les deux premiers caractères d'un QString ou si je dois le mettre aux termes d'un profane StackOverflows:Comment enlever les deux premiers caractères d'un QString

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

à

output: Name 

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

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

..mais il ne fonctionne pas comme je l'aurais besoin d'avoir "##" dans d'autres chaînes, mais pas au début.

Les deux premiers caractères peuvent se produire à être aussi bien « % $ » et « # @ » et que la plupart du temps la raison pour laquelle je dois supprimer les deux premiers caractères.

Des idées?

+0

str = str.right (str.size() - 2)? –

+5

str.remove (0,2)? Je n'ai jamais utilisé Qt, mais la documentation sur QString ressemble à ... très complète. – Timbo

+0

Timbo l'a bien compris! –

Répondre

2

cette syntaxe pour supprimer les deux premiers caractères.

str.remove(0, 2); 
5

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

QString trimmed = str.mid(2); 

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

1

Vous pouvez utiliser remove(const QRegExp &rx)

Supprime toutes les occurrences du rx d'expression régulière 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"