QString をトリミングするためにいくつかの操作を実行していますが、元の文字列には影響を与えたくありません。私は Qt を初めて使用し、const とそうでないものがあるため、さまざまな QString 関数の適切な使用方法について混乱しています。これまでのところ、これは私が持っているものです:
// this needs to be const so it doesn't get modified.
// code later on is depending on this QString being unchanged
const QString string = getString();
呼び出す必要があるメソッドは、、、QString::simplified()
およびQString::remove()
ですQString::trimmed()
。紛らわしい部分は、これsimplified()
を行う正しい方法は何かということです。オリジナルをコピーし、コピーに直接変更を加えることを念頭に置いて、これは私が持っているものです:trimmed()
const
remove()
// simplified() is a const function but no problem because I want a copy of it
QString copy = string.simplified();
// remove is non-const so it operates on the handle object, which is what I want
copy.remove( "foo:", Qt::CaseInsensitive );
// trimmed() is const, but I want it to affect the original
copy = copy.trimmed();
copy = copy.trimmed()
このケースを処理する正しい方法を使用していますか? これは、次の使用のために copy be trimmed() を持つという私の目標を達成しますか? これを行うためのより良い (よりエレガントで、より効率的で、より Qtish な) 方法はありますか?
QString Qt ドキュメントを確認しましたが、これらの質問に十分に答えることができませんでした。