簡略化した文字列 lots\t of\nwhitespace\r\n
がありますが、文字列内の他のスペースを削除する必要があります。
QString str = " lots\t of\nwhitespace\r\n ";
str = str.simplified();
私はこれerase_all(str, " ");
をブーストで行うことができますが、qtに留まりたいです。
str = str.simplified();
str.replace( " ", "" );
1 つ目はすべての空白文字を ASCII 32 の単一インスタンスに変更し、2 つ目はそれを削除します。
これを試して:
str.replace(" ","");
オプション 1 :
空白を単純化してから削除する
ドキュメントごと
[
QString::simplified
] 最初と最後から空白が削除され、内部空白の各シーケンスが単一のスペースに置き換えられた文字列を返します。
文字列が単純化されると、空白は簡単に削除できます。
str.simplified().remove(' ')
オプション 2 :
a を使用して、QRegExp
内のすべてのタイプの空白をキャプチャしますremove
。
QRegExp space("\\s");
str.remove(space);
ノート
OP 文字列には、さまざまな種類 (タブ、キャリッジ リターン、改行) の空白があり、すべて削除する必要があります。これはトリッキーな部分です。
QString::remove
Qt 5.6 で導入されました。5.6 より前の削除はQString::replace
、空白を空の文字列に置き換えて使用することで実現できます""
。