Как удалить первые два символа QString

Как бы я удалил первые два символа QString или если бы мне пришлось поместить его в термины непрофессионала Stackrus:

QString str = "##Name" //output: ##Name

в

output: Name

До сих пор я использовал этот маленький кусочек кода:

if(str.contains("##"))
{
    str.replace("##","");
}

..но это не работает, так как мне нужно было бы иметь "##" в некоторых других строках, но не в начале.

Первые два символа также могут быть "%$" и "#@", и это в основном причина, по которой мне нужно удалить первые два символа.

Есть идеи?

3 ответа

Решение

Это синтаксис для удаления двух первых символов.

str.remove(0, 2); 

Вы можете использовать QString::mid функция для этого:

QString trimmed = str.mid(2);

Но если вы хотите изменить строку на месте, вам лучше использовать QString::remove как другие предложили.

Вы можете использовать удалить (const QRegExp &rx)

Удаляет все вхождения регулярного выражения rx в строке и возвращает ссылку на строку. Например:

QString str = "##Name" //output: ##Name
    str.remove(QRegExp("[#]."));
    //strr == "Name"
Другие вопросы по тегам