2016-12-21 1 views
-2

Je pense à des expressions régulières, mais ce n'est pas vraiment lisible. Il y a aussi des fonctions comme s.toUpper() à considérer, et probablement d'autres choses aussi.En Qt; Quelle est la meilleure méthode pour capitaliser la première lettre de chaque mot dans un QString?

Alors quelle est la meilleure méthode pour capitaliser la première lettre de mots dans un QString?

+1

Que voulez-vous dire par « meilleur »? Le plus efficace, le plus lisible, le plus maintenable? Il n'y a pas beaucoup d'informations ici. Avez-vous 1000 'QString' que vous voulez gérer, ou commencez-vous juste? – Tas

+0

@Tas j'ai environ 100 000 QStrings que je devrais faire. Au mieux, je veux juste dire par les lignes directrices Qt Style, et si ce n'est pas le cas; lisible. – Akiva

+2

Je ne vois pas de meilleure méthode que d'itérer sur la chaîne et de capitaliser chaque lettre après un espace. –

Répondre

1

En utilisant this example comme référence, vous pouvez faire quelque chose comme ceci:

QString toCamelCase(const QString& s) 
{ 
    QStringList parts = s.split(' ', QString::SkipEmptyParts); 
    for (int i = 0; i < parts.size(); ++i) 
     parts[i].replace(0, 1, parts[i][0].toUpper()); 

    return parts.join(" "); 
}