修剪字符串列表中所有字符串的最佳方法是什麼?我嘗試使用replaceInStrings:QStringList從字符串中刪除空格
QStringList somelist;
// ... //
// add some strings
// ... //
somelist.replaceInStrings(QRegExp("^\s*"),"");
但未刪除空格。
修剪字符串列表中所有字符串的最佳方法是什麼?我嘗試使用replaceInStrings:QStringList從字符串中刪除空格
QStringList somelist;
// ... //
// add some strings
// ... //
somelist.replaceInStrings(QRegExp("^\s*"),"");
但未刪除空格。
象前面說,你需要轉義反斜線另一個答案必須使用\\
。你也想改變表達式匹配一個或多個空格,而不是0或多個空格,請嘗試使用: QRegExp(「^ \\ S +」)
QRegExp("^\s*")
\是特殊符號,所以當你需要插入斜線爲字符串
QRegExp("^\\s*")
QStringList somelist;
for(int i = 0; i < somelist.size(); ++i) {
QString item = static_cast<QString>(somelist[i]).trimmed()
}
如果可以使用C++ 11 (QT5的qmake項目文件:CONFIG += c++11
),那就試試這個小片段:
QStringList somelist;
// fill list
for(auto& str : somelist)
str = str.trimmed();
它將通過與基準和trimmed
函數調用結果列表運行將在原始列表被分配回項目。
如果不使用C++ 11可以使用Qt
方法與Java風格的,可變的迭代器:
QMutableListIterator<QString> it(somelist);
while (it.hasNext()) {
it.next();
it.value() = it.value().trimmed();
}
後者的方法恰到好處,如果,例如,要刪除空字符串他們已經修整後:
QMutableListIterator<QString> it(somelist);
while (it.hasNext()) {
it.next();
it.value() = it.value().trimmed();
if (it.value().length() == 0)
it.remove();
}
雖然此代碼片段可能會解決問題,但它並不能解釋爲什麼或如何回答問題。請[請爲您的代碼添加解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers),因爲這確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 **舉報人/評論者:** [僅限代碼解答,例如downvote,請勿刪除!](// meta.stackoverflow.com/a/260413/2747593) –