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

Getting a number from QString then converting it to integer

我正在开发一个 QT 软件,它使用 telnet 命令从 adsl 调制解调器获取一些信息 link。 我得到了所有这些信息到一个 QString

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

我只想select一个数字 下行后速率

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. 将其拆分为 space 个字符并获取第一个标记。 (应包含“10239”)
  4. 最终将字符串转换为 int。