【问题标题】:Qt Split QString onceQt 将 QString 拆分一次
【发布时间】:2014-12-30 15:21:16
【问题描述】:

我想拆分QString,但根据文档,拆分功能仅允许在出现要拆分的字符时进行拆分。我想要的是只在角色第一次出现的地方分裂。

例如:

5+6+7 与默认 split() 将在包含 ["5","6","7"] 的列表中结束

我想要的:只有两个元素的列表 -> ["5","6+7"]

提前感谢您的回答!

【问题讨论】:

  • 好的...你试过什么?
  • 分享您的研究对每个人都有帮助。告诉我们您尝试了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见how to ask
  • 我上网搜索,但在论坛或 qt 文档中没有找到。我更想知道是否有可以执行我建议的 stock/native 函数。
  • 使用indexOf 查找"+" 的第一个匹配项。然后使用 mid - mid(0,index)mid(index+1) 拆分字符串
  • 它不必是本机功能来完成任何事情。您可以从数组中取出第一个元素并加入其余元素。

标签: c++ qt split qstring qtcore


【解决方案1】:

有多种方法可以实现这一点,但this is 可能而且可以说是最简单的:

main.cpp

#include <QString>
#include <QDebug>

int main()
{
    QString string("5+6+7");
    qDebug() << string.section('+', 0, 0) << string.section('+', 1);
    return 0;
}

main.pro

TEMPLATE = app
TARGET = main
QT = core
SOURCES += main.cpp

构建并运行

qmake && make && ./main

输出

"5" "6+7"

【讨论】:

    【解决方案2】:

    使用indexOf() 查找“+”的第一个匹配项。然后使用 mid - mid(0,index)mid(index+1) 拆分字符串 - 归功于“R Sahu”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-12
      • 2012-07-29
      • 1970-01-01
      • 2011-11-26
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多