判读字符串是否为空
成员函数isNull()和 isEmpty()都是用于判读字符串是否为空,但是稍有差别。如果是一个空字符串,只有"\0",isNull()则返回 false,而isEmpty()返回的是true;只有未赋值的字符串,isNull()才返回 true。比如:
QString strl,str2="";
N=str1.isNull();//N=true,未赋值字符串变量
N=str2.isNull();//N=false,只有"\0"的字符串也不是Null
N=str1.isEmpty();//N=true
N=str2.isEmpty();//N=true
QString类对象只要赋值,就会在字符串的末尾自动加上"\0"。如果只是要判断字符串内容是否为空,常用isEmpty()函数。
判断是否包含某个字符串
函数contains()用于判断字符串内是否包含某个字符串,可指定是否要区分字母大小写。比如:
QString strl="d:\zcbBook\QT5.12Study\qw.cpp";
N=str1.contains(".cpp",Qt::CaseInsensitive);//N=true,不区分字母大小写
N=str1.contains(".CPP",Qt::CaseSensitive);//N=false,区分字母大小写
判断是否以某个字符串开头或结尾
函数startsWith()用于判断是否以某个字符串开头,函数endsWith()用于判断是否以某个字符串结束。比如:
QString str1="d:\zcbBook\QT5.12Study\qw.cpp";
bool N=str1.endsWith(".cpp",Qt::CaseInsensitive);//N=true,不区分字母大小写
N=str1.endsWith(".CPP",Qt::CaseSensitive);//N=false,区分字母大小写
N=str1.startsWith("g:");//N=true,默认为不区分字母大小写
又比如:
if (url.startsWith("http:") && url.endsWith(".png")){}
等价于:
if( url.left(5)=="http:" && url.right(4) == ".png"){}
但是前者更加清楚,并且性能更快。