QString を次のようにフォーマットしたい:
QString("%1000%2").arg("ABC", "DEF");
出力が になると思っていましたが"ABC000DEF"
、実際には"%1000ABC"
です。
どうすればあいまいさを乗り越えることができますか?
「%1」「000」「%2」が表示されず、「%10」「00」「%2」が表示されます (プレースマーカーの範囲は 1 から 99 です)。
回避策は次のとおりです。
QString("%1%2%3").arg("ABC", "000", "DEF");
別の回避策は、replace
代わりにを使用することですarg
。これにより、元の書式文字列は変更されませんが、より多くの入力が必要になります。
QString("%1000%2").replace("%1", "ABC").replace("%2", "DEF");