QString :: endsWith()不起作用吗?

时间:2015-11-18 15:44:30

标签: c++ qt qstring

我有一个函数,我检查字符串的结尾以确定扩展名。

我使用方法endsWith和第二个参数:Qt::CaseInsensitive

现在的问题是,对于某些扩展它是有效的,对于其他扩展它不是。字符串只能用普通的拉丁字符书写,没什么特别的。

在调试器中,字符串看起来没问题,在最终字符后面没有尾随空格或任何内容。

它应该可以工作,但它只适用于某些文件扩展名。以下是我的支票样本:

if(myString.endsWith(".mp3", Qt::CaseInsensitive) || myString.endsWith(".wav", Qt::CaseInsensitive) || myString.endsWith(".flac", Qt::CaseInsensitive) ||
   myString.endsWith(".ape", Qt::CaseInsensitive))
{
    DoSomething();
}

myString是"Glory.mp3"

它仅适用于某些文件扩展名。

这是一个非工作案例:

else if(myString.endsWith(".zip", Qt::CaseInsensitive) || myString.endsWith(".rar", Qt::CaseInsensitive) || myString.endsWith(".tar", Qt::CaseInsensitive) ||
            myString.endsWith(".tar.gz", Qt::CaseInsensitive), myString.endsWith(".7z", Qt::CaseInsensitive))
{
    DoSomethingElse();
}

myString是"magnets.zip"

1 个答案:

答案 0 :(得分:6)

preg_replace('/(?:(?:<br>)\s*)/s', "<br><br>", $posttext)

在最后两次else if(myString.endsWith(".zip", Qt::CaseInsensitive) || myString.endsWith(".rar", Qt::CaseInsensitive) || myString.endsWith(".tar", Qt::CaseInsensitive) || myString.endsWith(".tar.gz", Qt::CaseInsensitive), myString.endsWith(".7z", Qt::CaseInsensitive)) { 来电

之间使用||代替,

endsWith是一个运算符,它评估双方,但只返回其表达式的右侧