使用arg格式化字符串

原文链接:https://www.fearlazy.com/index.php/post/311.html

需求:

现有分钟和秒数,需要格式化时间字符串,秒数不足两位时前面用0补充,如14:08。

方法:

QString可以用sprintf函数格式化字符串,也可以用arg来达到以上目的。

arg有20个重载函数,我们使用一个带4个参数的,代码如下:

结果输出14:08。在第二个arg使用了格式化,其4个参数分别是数值(int型)、最小宽度、进制和填充的字符。

第二参数(最小宽度)为正数时右对齐,填充字符会在左边,如08,若为负数则左对齐,结果就是80.

扩展:

使用arg格式化浮点数。

结果输出1.43e+1。

该重载函数有5个参数:数值(double)、最小宽度、格式、精度和填充字符(默认为'')。

---> 文章来源于我的个人博客:fearlazy
---> 编程是一件怎么也学不会的事情,但是如果能享受学习的过程也是挺好的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
`QString.arg()` 方法是 Qt 中用来格式化字符串的方法之一,它可以将一个字符串中的占位符替换为指定的内容。 `QString.arg()` 方法的使用方法如下: ```cpp QString arg(const QString & a, int fieldWidth = 0, const QChar & fillChar = QLatin1Char(' ')) const; QString arg(int a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char(' ')) const; QString arg(uint a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char(' ')) const; QString arg(long a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char(' ')) const; QString arg(ulong a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char(' ')) const; QString arg(qlonglong a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char(' ')) const; QString arg(qulonglong a, int fieldWidth = 0, int base = 10, const QChar & fillChar = QLatin1Char(' ')) const; QString arg(double a, int fieldWidth = 0, char format = 'g', int precision = -1, const QChar & fillChar = QLatin1Char(' ')) const; QString arg(const QTextStreamArg & a) const; ``` 其中,第一个参数是要替换占位符的内容,可以是字符串、整数、浮点数等类型。后面的参数则是用来指定占位符的格式,例如,`fieldWidth` 表示字段宽度,`fillChar` 表示填充字符,`base` 表示整数的进制,`format` 表示浮点数的格式,`precision` 表示浮点数的精度等等。 下面是一个使用 `QString.arg()` 方法的示例代码: ```cpp QString str = "Hello, %1! Today is %2."; QString name = "Alice"; QDate date = QDate::currentDate(); QString formatted = str.arg(name).arg(date.toString(Qt::ISODate)); qDebug() << formatted; ``` 在上面的代码中,我们首先定义了一个字符串 `str`,其中包含了两个占位符 `%1` 和 `%2`,分别用来替换名字和日期。然后,我们定义了一个名字 `name` 和一个日期 `date`,分别代表要替换的内容。接着,我们使用 `QString.arg()` 方法,先将名字替换到字符串中的 `%1` 处,然后将日期替换到 `%2` 处,最终得到一个格式化后的字符串。输出结果类似于:`Hello, Alice! Today is 2021-07-28.`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fearlazy

打赏是不可能的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值