从 QString 获取一个数字然后将其转换为整数

问题描述

我正在开发一个 QT 软件,该软件使用 telnet 命令从 adsl 调制解调器链接获取一些信息。 我把所有这些信息都放到了一个 QString 中

 QString datarate = ui->output->toPlainText();

我只想选择一个数字 下游速率后

Downstream rate = 10239 Kbps

并将其转换为整数以与其他数字进行比较... 我不想采用第一个 = 20892 kbps

Status: Showtime
Max:    Upstream rate = 1193 Kbps,Downstream rate = 20892 Kbps

Bearer: 0,Upstream rate = 1021 Kbps,Downstream rate = 10239 Kbps

有什么建议吗?? 注意:数字将是随机的,因此 adsl 状态有很大不同

解决方法

也许这样的事情会奏效:

QString datarate = ui->output->toPlainText();
int number = datarate.split("Downstream rate = ")[2].split(" ")[0].toInt();

这是采取以下步骤:

  1. 将字符串分解成由“下游速率=”分隔的部分
  2. 获取该列表中的第三个字符串(应包含“10239 Kbps”)
  3. 按空格字符分割并取第一个标记。 (应包含“10239”)
  4. 最后将字符串转换为整数。