QString :: arg()在占位符后面带有数字

Sil*_*cer 8 qstring qt

我想在字符串上使用.arg().这是一个例子:

qDebug() << QString("%11%2").arg(66).arg(77);
Run Code Online (Sandbox Code Playgroud)

我想得到输出,66177但当然这不是实际输出,因为%11被解释为占位符#11而不是占位符#1后跟一个文字1.

有没有比以下更好的解决方案?

qDebug() << QString("%1%2%3").arg(66).arg(1).arg(77);
Run Code Online (Sandbox Code Playgroud)

Mar*_*k R 3

arg替换 后具有最低值的序列%。范围必须在 1 到 99 之间。因此您不必使用1索引,您可以使用两位数而不是一位数。

尝试一下,看看会发生什么:

qDebug() << QString("%111%22").arg(66).arg(77);
Run Code Online (Sandbox Code Playgroud)

这应该会给你预期的结果(我已经在 qt 5.4 上测试过它并且它工作得很好)。

我还测试了问题下的解决方案形式评论,它的作用是:

qDebug() << QString("%011%02").arg(66).arg(77);
Run Code Online (Sandbox Code Playgroud)