QString::endsWith() 不起作用?
QString::endsWith() doesn't work?
我有一个函数,可以检查字符串的结尾以确定扩展名。
我使用带有第二个参数的方法 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"
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
调用之间使用 ||
而不是 ,
,
是一个计算两边的运算符,但仅 returns 其表达式的右侧
我有一个函数,可以检查字符串的结尾以确定扩展名。
我使用带有第二个参数的方法 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"
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
调用之间使用 ||
而不是 ,
,
是一个计算两边的运算符,但仅 returns 其表达式的右侧