问题描述
我正在开发一个 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();
这是采取以下步骤:
- 将字符串分解成由“下游速率=”分隔的部分
- 获取该列表中的第三个字符串(应包含“10239 Kbps”)
- 按空格字符分割并取第一个标记。 (应包含“10239”)
- 最后将字符串转换为整数。