如何从Qstring获得第一个单词

时间:2014-02-06 13:45:06

标签: qt qstring qregexp

我希望获得Qstring的第一句话。

例如String1 = "Read from file1"。我想提取string2 = "Read"。 我想基于空格提取子字符串。

如果我在string1中遇到第一个空格,我需要string1string2的那一部分。

3 个答案:

答案 0 :(得分:6)

以这种方式使用QString的拆分功能:

QString firstWord = string1.split(" ").at(0);

如果字符串中没有空格,则返回整个字符串。

答案 1 :(得分:3)

如果您想使用所有部分,请使用QString::split;如果您只想抓住第一个字,请使用QString::section

例如,最基本的语法是:

QString str = "Do re mi";
QString firstWord = str.section(" ", 0, 0);
// firstWord = "Do"

如果您需要处理各种奇怪的空白,可以使用the regex version函数:

QString str = "\tDo    re\nmi"; // tabs and newlines and spaces, oh my!
QString firstWord = str.section(QRegExp("\\s+"), 0, 0, 
    QString::SectionSkipEmpty);
// firstWord = "Do"

答案 2 :(得分:1)

我愿意:

QString s("Read from file1");
QString subStr = s.section(" ", 0, 0, QString::SectionSkipEmpty);

这也适用于此类字符串:

  

“从file1读取”