Top.Mail.Ru
Уведомления
Очистить все

[Решено] Как разделить QString на подстроки.

(@ashtr)
New member

Всем хорошего дня, у меня какой-то затык на простейшей операции. Есть QString с текстом. Нужно разделить эту QString на подстроки, в качестве разделяющего элемента - пробел.

То есть имеется QString str = "This is text string". Нужен массив со строками {"This", "is", "test", "string"}. Заранее спасибо всем откликнувшимся!

Цитата
Создатель темы Размещено : 10.03.2022 11:55
Метки темы
AI
 AI
(@ai)
Level 3 Moderator

Привет, вот:

QString str = "This is text string";
QStringList strList = str.split(QRegExp("\\s"));

qDebug() << strList;

Вывод:

("This", "is", "text", "string") 
ОтветитьЦитата
Размещено : 10.03.2022 17:13
(@ashtr)
New member

@ai

Премного благодарен!
А если вместо пробелов символы табуляции?

"This is  text    string";
ОтветитьЦитата
Создатель темы Размещено : 13.03.2022 16:28
AI
 AI
(@ai)
Level 3 Moderator

Тогда:

QStringList strList = str.split(QRegExp("\\t"));

Но и с первым вариантом будет работать аналогично, поскольку CR, LF и TAB сами по себе являются в том числе и пробелами.

И еще небольшой нюанс, можно использовать:

QStringList strList = str.split(QRegExp("\\s+"));

Это для того случая, чтобы разделить по пробелам независимо от количества этих пробелов. То есть для строки "This is text   string" результат будет таким же:

("This", "is", "text", "string")

Хотя здесь перед string три пробела, а не один.

ОтветитьЦитата
Размещено : 14.03.2022 10:05
(@ashtr)
New member

@ai 

Еще раз спасибо за подробный ответ, все получилось!

ОтветитьЦитата
Создатель темы Размещено : 14.03.2022 12:22
Поделиться: