Как получить часть строки в Qt? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть набор строк, которые удовлетворяют следующему шаблону: sometext_number . Таким образом, у меня всегда есть число после символа «_». Есть ли удобный способ получить это число из строки независимо от ее размера?

Ответы [ 3 ]

5 голосов
/ 16 мая 2019

Если вы уверены, что у вас всегда есть "sometext_number" , вы можете протестировать следующие решения:

Использование QString::split():

QString str = "hello_1234";
int number = str.split('_').last().toInt();

Использование QRegularExpression::match():

QString str = "world_5678";
QRegularExpression regex("\\w+_(?<number>\\d+)");
QRegularExpressionMatch m = regex.match(str);
int number = m.captured("number").toInt();
1 голос
/ 16 мая 2019

Если вы используете QString в любом случае, вы можете сделать

QString s = "sometext_5";
int index = s.indexOf("_");
int number = s.mid(index+1).toInt();
0 голосов
/ 16 мая 2019

Вы можете использовать std :: find , который возвращает вам индекс элемента, который вы просматриваете, а затем использовать substr в вашей строке, заданной в параметре index где вы хотите остановить расщепление

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...