2014-02-06 77 views
0

我想獲得Qstring的第一個字。如何從Qstring中獲取第一個字

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

如果我遇到我string1第一空白,我需要的string1string2部分。

+0

你應該提供一些代碼,你如何解決你的問題。 –

回答

5

使用這樣的QString分割功能:

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

如果在字符串中沒有空白,整個字符串將被退回。

+0

在調用(0) –

+2

之前,最好檢查它是否爲空。在文檔中說如果沒有發生,split()將返回一個包含字符串本身的單元素列表。所以它總是會返回至少一個元素列表。 –

+1

事實上,它甚至會在分割空字符串時做到這一點。 –

1

我會做:

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

這將在這樣的字符串的情況下正常工作了:

「從文件1讀取」

2

使用QString::split如果你想使用所有的部分,或QString::section,如果你只是想抓住第一個字。

例如,最基本的語法是:

QString str = "Do re mi"; 
QString firstWord = str.section(" ", 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" 
相關問題