我有一组满足以下模式的字符串: sometext_number 。因此,我总是在'_'符号后面有一个数字。是否有从字符串中获取数字的便捷方法,而不论其大小如何?
答案 0 :(得分:5)
如果您确定总是有“ sometext_number” ,则可以测试以下解决方案:
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 :(得分:1)
如果您仍在使用QString
,则可以
QString s = "sometext_5";
int index = s.indexOf("_");
int number = s.mid(index+1).toInt();
答案 2 :(得分:0)
您可以使用 std :: find ,它返回您正在查看的元素的索引,然后在参数中给定的字符串上使用 substr 您要停止拆分的索引