我有一个函数,我检查字符串的结尾,以确定扩展名.
我使用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();
}
Run Code Online (Sandbox Code Playgroud)
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();
}
Run Code Online (Sandbox Code Playgroud)
myString是 "magnets.zip"
Run Code Online (Sandbox Code Playgroud)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的调用
, 是一个运算符,它评估双方,但只返回其表达式的右侧
| 归档时间: |
|
| 查看次数: |
1051 次 |
| 最近记录: |