Converting Strings from and to Camel Case

From Qt Wiki
Revision as of 11:55, 28 November 2016 by EdwardWelbourne (talk | contribs) (Sub-categorize)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Convert from camelCaseString to camel_case_string

QString fromCamelCase(const QString &s) {

   static QRegularExpression regExp1 {"(.)([A-Z][a-z]+)"};
   static QRegularExpression regExp2 {"([a-z0-9])([A-Z])"};
   QString result = s;
   result.replace(regExp1, "\\1_\\2");
   result.replace(regExp2, "\\1_\\2");
   return result.toLower();

}

Convert from camel_case_string to camelCaseString

QString toCamelCase(const QString& s) {

   QStringList parts = s.split('_', QString::SkipEmptyParts);
   for (int i=1; i<parts.size(); ++i)
       parts[i].replace(0, 1, parts[i][0].toUpper());
   return parts.join("");

}