在 Qt 中;将 QString 中每个单词的首字母大写的最佳方法是什么?
In Qt; what is the best method to capitalise the first letter of every word in a QString?
我在考虑正则表达式,但它的可读性不高。还有像 s.toUpper()
这样的函数需要考虑,可能还有其他的东西。
那么在 QString 中将单词首字母大写的最佳方法是什么?
使用this example作为参考,你可以这样做:
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(" ");
}
完全一样,但写法不同:
QString toCamelCase(const QString& s)
{
QStringList cased;
foreach (QString word, s.split(" ", QString::SkipEmptyParts))cased << word.at(0).toUpper() + word.mid(1);
return cased.join(" ");
}
这会占用更多内存,但没有指针访问(没有括号运算符)。
令人难以置信的 C++/Qt...您只想得到一些用 0x20 排序的字符...
我在考虑正则表达式,但它的可读性不高。还有像 s.toUpper()
这样的函数需要考虑,可能还有其他的东西。
那么在 QString 中将单词首字母大写的最佳方法是什么?
使用this example作为参考,你可以这样做:
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(" ");
}
完全一样,但写法不同:
QString toCamelCase(const QString& s)
{
QStringList cased;
foreach (QString word, s.split(" ", QString::SkipEmptyParts))cased << word.at(0).toUpper() + word.mid(1);
return cased.join(" ");
}
这会占用更多内存,但没有指针访问(没有括号运算符)。
令人难以置信的 C++/Qt...您只想得到一些用 0x20 排序的字符...