qt--QString类及常⽤函数功能的使⽤(字符串截取,替换,查
,切割)
append() 和 prepend()
append() 在字符串的后⾯添加字符串, prepend() 在字符串的前⾯添加字符串
QString str = "and";
str.prepend("rock "); // str == "rock and"
str.append(" roll"); // str == "rock and roll"
toUpper() 和 toLower()
toUpper() 将字符串内的字母全部转换为⼤写,toLower() 将字母全部转换为⼩写,如:
QString str1 = "Hello", str2;
str2 = Upper(); //str2 = "HELLO"
str2 = Lower(); //str2 = "hello"
count()、size() 和 length() 返回值:int
count()、size() 和 length() 都返回字符串的字符个数,这 3 个函数是相同的,但是要注意,字符串中如果有汉字,⼀个汉字算⼀个字符。
QString str = "abc"
int N = unt() //N = 3
int N1 = str1.size() //N1 = 3
int N2 = str1.length() //N2 = 3
isNull() 和 isEmpty() 返回值:bool
都是判断字符串是否为空;如果⼀个空字符串,只有“\0”,isNull() 返回 false,⽽ isEmpty() 返回 true;只有未赋值的字符串,isNull() 才返回 true
QString str1, str2 = "";
bool N = str1.isNull () ; // N = true 未赋值字符串变量
bool N1 = str2.isNull (); // N1 = false 只有"\0"的字符串,也不是 Null
bool N2 = str1.isEmpty(); // N2 = true
bool N3 = str2.isEmpty(); // N3 = true
字符串截取:
(int position, int n = -1) const
两个参数,第⼀个是起始位置,第⼆个是取串的长度。如果省略第⼆个参数,则会从起始位置截取到末尾
QString str = "Nine pineapples";
QString str1 = str .mid(5, 4); // str1 = "pine"
QString str2 = str .mid(5); // str2 = "pineapples"
left()和rigt()
都接受⼀个int类型的参数n,都是对字符串进⾏截取。不同之处在于,left()函数从左侧截取n个字符,⽽right()从右侧开始截取 。
QString str = "Pineapple";
QString str1 = str.left(4); // str1 = "Pine"
字符串替换:
replace() : &QString::replace(int position, int n, after)
⽤索引后的字符替换从索引位置(position)开始的n个字符,并返回对此字符串的引⽤。
QString str = "and";
str.prepend("rock "); // str == "rock and"
str.append(" roll"); // str == "rock and roll"
isnull的用法字符串插⼊
&QString::insert(int position, const &str)
QString str = "Meal";
str.insert(1, QString("ontr"));
// str == "Montreal"
字符串切割:
字符串分割可以按照空格(“ ”)、逗号(“,”)、顿号(“、”)等进⾏分割,也可以⽤正则表达式
section():
QString::section( sep, int start, int end = -1, flags = SectionDefault) const
从字符串中提取以 sep 作为分隔符,从 start 端到 end 端的字符串。
QString str;
QString csv = "forename,middlename,surname,phone";
QString path = "/usr/local/bin/myapp"; // First field is empty
QString::SectionFlag flag = QString::SectionSkipEmpty;
str = csv.section(',', 2, 2); // str == "surname"
str = path.section('/', 3, 4); // str == "bin/myapp"
str = path.section('/', 3, 3, flag); // str == "myapp"
split():
QString :: split(const& sep, behavior = Qt :: KeepEmptyParts,
cs = Qt :: CaseSensitive)const
在sep出现的任何位置将字符串拆分为⼦字符串,并返回这些字符串的列表。如果sep与字符串中的任何地⽅都不匹配,则split()返回包含此字符串的单元素列表。cs指定sep应该区分⼤⼩写还是不区分⼤⼩写。如果⾏为是,则空条⽬不会出现在结果中。默认情况下,保留空条⽬。
QString str = QStringLiteral("a,,b,c");
QStringList list1 = str.split(',');
// list1: [ "a", "", "b", "c" ]
QStringList list2 = str.split(',', Qt::SkipEmptyParts);
// list2: [ "a", "b", "c" ]
字符串查:
indexOf () 和 lastIndexOf ()
int(QLatin1String str, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
在⾃⾝字符串内查参数字符串 str 出现的位置,参数 from 是幵始查的位置,Qt::CaseSensitivity cs 参数指定是否区分⼤⼩写。
int(QChar ch, int from = -1, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
lastIndexOf() 函数则是查某个字符串最后出现的位置。
QString str1="G:\Qt5Book\QT5.9Study\qw.cpp";
N = str1.indexOf("5.9"); // N=13
N = str1.lastIndexOf("\\"); //N=21 "\"转义字符
endsWith() 和 startsWith()
startsWith() 判断是否以某个字符串幵头,endsWith() 判断是否以某个字符串结束。
QString str1=MG:\Qt5Book\QT5.9Study\qw.cpp";
dsWith (".cpp", Qt::CaseInsensitive) ; // N=true,不区分⼤⼩写
dsWith (".CPP", Qt::CaseSensitive) ; // N=false,区分⼤⼩写
N=str1.startsWith ("g: ") ; // N=true,缺省为不区分⼤⼩写
字符串去空格:
trimmed() 和 simplified()
trimmed() 去掉字符串⾸尾的空格,simplified() 不仅去掉⾸尾的空格,中间连续的空格也⽤⼀个空格替换。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论