如何删除QString的前两个字符

时间:2017-03-07 13:31:27

标签: c++ qt replace qstring

如何删除QString的前两个字符,或者我必须将它放在StackOverflows外行的条款中:

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

output: Name

到目前为止,我已经使用了这一小段代码:

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

..但它不起作用,因为我需要在其他一些字符串中使用“##”,但不是在开头。

前两个字符可能会出现“%$”“#@”,这主要是我需要删除前两个字符的原因

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

这个语法删除了两个第一个字符。

str.remove(0, 2); 

答案 1 :(得分:5)

您可以使用QString::mid功能:

QString trimmed = str.mid(2);

但是,如果您希望修改字符串,最好使用其他人建议的QString::remove

答案 2 :(得分:4)

您可以使用remove(const QRegExp &rx)

删除字符串中每个出现的正则表达式rx,并返回对该字符串的引用。例如:

QString str = "##Name" //output: ##Name
    str.remove(QRegExp("[#]."));
    //strr == "Name"