2014-02-06 1 views
0

Я хочу получить первое слово Qstring.Как получить первое слово от Qstring

Например, String1 = "Read from file1". Я хочу извлечь string2 = "Read". Я хочу извлечь подстроку на основе пробелов.

Если у меня есть первый пробел в моем string1, мне нужна эта часть string1 до string2.

+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); 

Это будет корректно работать в случае таких строк тоже:

"Чтение из file1"

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" 

 Смежные вопросы

  • Нет связанных вопросов^_^